Неустранимая ошибка при создании навигационного ящика: InflateException: строка двоичного XML-файла № 1: ошибка при раздувании класса DrawerLayout

Я пытаюсь следовать этому руководству по реализации Android Navigation Drawer:

http://codetheory.in/android-navigation-drawer/

и я получаю следующую ошибку:

07-06 11:59:06.125: E/AndroidRuntime(1878): FATAL EXCEPTION: main
07-06 11:59:06.125: E/AndroidRuntime(1878): Process: com.example.app, PID: 1878
07-06 11:59:06.125: E/AndroidRuntime(1878): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app/com.example.app.Home}: android.view.InflateException: Binary XML file line #1: Error inflating class DrawerLayout
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.os.Handler.dispatchMessage(Handler.java:102)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.os.Looper.loop(Looper.java:136)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.app.ActivityThread.main(ActivityThread.java:5001)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at java.lang.reflect.Method.invokeNative(Native Method)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at java.lang.reflect.Method.invoke(Method.java:515)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at dalvik.system.NativeStart.main(Native Method)
07-06 11:59:06.125: E/AndroidRuntime(1878): Caused by: android.view.InflateException: Binary XML file line #1: Error inflating class DrawerLayout
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:707)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.view.LayoutInflater.inflate(LayoutInflater.java:469)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.app.Activity.setContentView(Activity.java:1929)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at com.example.app.Home.onCreate(Home.java:125)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.app.Activity.performCreate(Activity.java:5231)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
07-06 11:59:06.125: E/AndroidRuntime(1878):     ... 11 more
07-06 11:59:06.125: E/AndroidRuntime(1878): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.DrawerLayout" on path: DexPathList[[zip file "/data/app/com.example.app-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.app-2, /system/lib]]
07-06 11:59:06.125: E/AndroidRuntime(1878):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.view.LayoutInflater.createView(LayoutInflater.java:559)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:652)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)
07-06 11:59:06.125: E/AndroidRuntime(1878):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)
07-06 11:59:06.125: E/AndroidRuntime(1878):     ... 20 more

В моей исходной строке #125 есть:

setContentView(R.layout.ss_home);

содержимое R.layout.ss_home:

<DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="00dp"
    android:layout_marginTop="0dp"
    android:orientation="vertical"
    android:id="@+id/RootView" >

    <RelativeLayout
        android:layout_width="280dp"
        android:layout_height="match_parent"
        android:id="@+id/drawerPane"
        android:layout_gravity="start">

...

Если кто-нибудь может пролить свет на то, почему это может происходить / как это решить - это было бы очень признательно.

На данный момент я в тупике (ресурс, который, по его словам, отсутствует - существует! [также - я пытался очистить проект и перезапустить Eclipse])


person Jackie Deezner    schedule 06.07.2015    source источник


Ответы (2)


При изменении XML с <DrawerLayout на <android.support.v4.widget.DrawerLayout

и не забудьте интегрировать библиотеку поддержки

person Marco Batista    schedule 06.07.2015

Возможно, вы пропустили миграцию некоторых классов при переходе на androidx. Как и я, я использовал старый класс поддержки вместо класса androidx для этого компонента.

android:appComponentFactory="androidx.core.app.CoreComponentFactory".

Проверьте другие классы andoridx здесь.

person Anirudh    schedule 20.12.2019