Java 无法将android.support.constraint.ConstraintLayout强制转换为android.support.v4.widget.DrawerLayout

Java 无法将android.support.constraint.ConstraintLayout强制转换为android.support.v4.widget.DrawerLayout,java,android,drawerlayout,android-constraintlayout,Java,Android,Drawerlayout,Android Constraintlayout,合并两个androidStudio项目后,我出现了这个错误, 该应用程序初始化为飞溅,显示效果良好。然后,当尝试访问activity_main.xml时,应用程序崩溃。 错误是: FATAL EXCEPTION: main Process: eu.siacs.conversations, PID: 16604 java.lang.RuntimeException: Unable to start activity ComponentInfo

合并两个androidStudio项目后,我出现了这个错误, 该应用程序初始化为飞溅,显示效果良好。然后,当尝试访问activity_main.xml时,应用程序崩溃。 错误是:

FATAL EXCEPTION: main
              Process: eu.siacs.conversations, PID: 16604
              java.lang.RuntimeException: Unable to start activity ComponentInfo{eu.siacs.conversations/eu.siacs.conversations.ui.MainActivity}: java.lang.ClassCastException: android.support.constraint.ConstraintLayout cannot be cast to android.support.v4.widget.DrawerLayout
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2726)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2787)
                  at android.app.ActivityThread.-wrap12(ActivityThread.java)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1504)
                  at android.os.Handler.dispatchMessage(Handler.java:102)
                  at android.os.Looper.loop(Looper.java:154)
                  at android.app.ActivityThread.main(ActivityThread.java:6247)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
               Caused by: java.lang.ClassCastException: android.support.constraint.ConstraintLayout cannot be cast to android.support.v4.widget.DrawerLayout
                  at eu.siacs.conversations.ui.MainActivity.onCreate(MainActivity.java:96)
                  at android.app.Activity.performCreate(Activity.java:6757)
                  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2679)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2787) 
                  at android.app.ActivityThread.-wrap12(ActivityThread.java) 
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1504) 
                  at android.os.Handler.dispatchMessage(Handler.java:102) 
                  at android.os.Looper.loop(Looper.java:154) 
                  at android.app.ActivityThread.main(ActivityThread.java:6247) 
                  at java.lang.reflect.Method.invoke(Native Method) 
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872) 
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762) 
activity_main.xml(布局)是:

注意:在合并两个项目之前,所有代码都有效。

您的问题是

原因:java.lang.ClassCastException:android.support.constraint.ConstraintLayout无法强制转换为android.support.v4.widget.DrawerLayout


根xml代码是
ConstraintLayout
。因此,您应该更改为
DrawerLayout

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start"
    tools:context="eu.siacs.conversations.ui.MainActivity">

    ...
</android.support.v4.widget.DrawerLayout>

...

ConstraintLayout
不是
抽屉布局
。你不能把它当作一个。如果需要
抽屉布局
,请在布局中使用
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start"
    tools:context="eu.siacs.conversations.ui.MainActivity">

    ...
</android.support.v4.widget.DrawerLayout>