Исключение времени выполнения: ошибка раздувания класса android.support.v4.widget.DrawerLayout

Я получаю сообщение об ошибке раздувания класса android.support.v4.widget.DrawerLayout.Я разместил подробное описание в ниже кодировках и соответствующий скриншот.

Трассировки стека:

11-04 07:35:04.404: E/AndroidRuntime(1427): FATAL EXCEPTION: main 11-04 07:35:04.404: E/AndroidRuntime(1427): Process: com.example.steve, PID: 1427 11-04 07:35:04.404: E/AndroidRuntime(1427): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.steve/com.example.steve.MainActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class android.support.v4.widget.DrawerLayout 11-04 07:35:04.404: E/AndroidRuntime(1427): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 11-04 07:35:04.404: E/AndroidRuntime(1427): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 11-04 07:35:04.404: E/AndroidRuntime(1427): at android.app.ActivityThread.access$800(ActivityThread.java:135) 11-04 07:35:04.404: E/AndroidRuntime(1427): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 11-04 07:35:04.404: E/AndroidRuntime(1427): at android.os.Handler.dispatchMessage(Handler.java:102) 11-04 07:35:04.404: E/AndroidRuntime(1427): at android.os.Looper.loop(Looper.java:136) 11-04 07:35:04.404: E/AndroidRuntime(1427): at android.app.ActivityThread.main(ActivityThread.java:5017) 11-04 07:35:04.404: E/AndroidRuntime(1427): at java.lang.reflect.Method.invokeNative(Native Method) 11-04 07:35:04.404: E/AndroidRuntime(1427): at java.lang.reflect.Method.invoke(Method.java:515) 11-04 07:35:04.404: E/AndroidRuntime(1427): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 11-04 07:35:04.404: E/AndroidRuntime(1427): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 11-04 07:35:04.404: E/AndroidRuntime(1427): at dalvik.system.NativeStart.main(Native Method) 11-04 07:35:04.404: E/AndroidRuntime(1427): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class android.support.v4.widget.DrawerLayout 11-04 07:35:04.404: E/AndroidRuntime(1427): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:707) 11-04 07:35:04.404: E/AndroidRuntime(1427): at android.view.LayoutInflater.inflate(LayoutInflater.java:469) 11-04 07:35:04.404: E/AndroidRuntime(1427): at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 11-04 07:35:04.404: E/AndroidRuntime(1427): at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 11-04 07:35:04.404: E/AndroidRuntime(1427): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290) 11-04 07:35:04.404: E/AndroidRuntime(1427): at android.app.Activity.setContentView(Activity.java:1929) 11-04 07:35:04.404: E/AndroidRuntime(1427): at com.qrme.quranmadeeasy.ChapterActivity.onCreate(ChapterActivity.java:91) 11-04 07:35:04.404: E/AndroidRuntime(1427): at android.app.Activity.performCreate(Activity.java:5231) 11-04 07:35:04.404: E/AndroidRuntime(1427): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 11-04 07:35:04.404: E/AndroidRuntime(1427): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 11-04 07:35:04.404: E/AndroidRuntime(1427): ... 11 more 11-04 07:35:04.404: E/AndroidRuntime(1427): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.widget.DrawerLayout" on path: DexPathList[[zip file "/data/app/com.qrme.quranmadeeasy-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.qrme.quranmadeeasy-2, /system/lib]] 11-04 07:35:04.404: E/AndroidRuntime(1427): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 11-04 07:35:04.404: E/AndroidRuntime(1427): at java.lang.ClassLoader.loadClass(ClassLoader.java:497) 11-04 07:35:04.404: E/AndroidRuntime(1427): at java.lang.ClassLoader.loadClass(ClassLoader.java:457) 11-04 07:35:04.404: E/AndroidRuntime(1427): at android.view.LayoutInflater.createView(LayoutInflater.java:559) 11-04 07:35:04.404: E/AndroidRuntime(1427): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) 11-04 07:35:04.404: E/AndroidRuntime(1427): ... 20 more 

ChapterActivity.java:

 package com.example.steve; import android.support.v4.app.ActionBarDrawerToggle; import android.support.v4.widget.DrawerLayout; public class MainActivity extends Activity implements OnItemClickListener { RelativeLayout relativelayoutContainer; TextView txtHeading; ListView listChapter; ListView listSlider; ImageView imgBanner; @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().requestFeature(Window.FEATURE_ACTION_BAR); setContentView(R.layout.activity_main); --->Error line no.91 initialize(); } private void initialize() { relativelayoutContainer = (RelativeLayout) findViewById(R.id.container); txtHeading = (TextView) findViewById(R.id.textviewHeading); listChapter = (ListView) findViewById(R.id.listviewChapters); imgBanner = (ImageView) findViewById(R.id.imageviewBanner); listSlider = (ListView) findViewById(R.id.list_slidermenu); // Setting font color and size Resources resources = ChapterActivity.this.getResources(); } private void displayView(int position) { // update the main content by replacing fragments Fragment fragment = null; switch (position) { case 0: fragment = new HomeFragment(); break; case 1: fragment = new FindPeopleFragment(); break; case 2: fragment = new PhotosFragment(); break; default: break; } if (fragment != null) { FragmentManager fragmentManager = getFragmentManager(); fragmentManager.beginTransaction() .replace(R.id.frame_container, fragment).commit(); // update selected item and title, then close the drawer mDrawerList.setItemChecked(position, true); mDrawerList.setSelection(position); setTitle(navMenuTitles[position]); mDrawerLayout.closeDrawer(mDrawerList); } else { // error in creating fragment Log.e("MainActivity", "Error in creating fragment"); } } } 

activity_main.xml:

 <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:id="@+id/frame_container" android:layout_width="match_parent" android:layout_height="match_parent" /> <RelativeLayout android:id="@+id/container" android:layout_width="match_parent"layout_width="wrap_content" android:layout_height="match_parent" > <TextView android:id="@+id/textviewHeading" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="5dp" android:fontFamily="fonts/Dosis.otf" android:text="@string/heading_chapter" android:textSize="25sp" android:visibility="gone" /> <ListView android:id="@+id/listviewChapters" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_above="@+id/imageviewBanner" android:layout_below="@+id/textviewHeading" android:layout_marginTop="5dp" /> </ListView> <ImageView android:id="@+id/imageviewBanner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:src="@drawable/banner" android:visibility="invisible" /> </RelativeLayout> <ListView android:id="@+id/list_slidermenu" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:background="@color/list_background" android:choiceMode="singleChoice" android:divider="@color/list_divider" android:dividerHeight="1dp" android:listSelector="@drawable/list_selector" android:background="@color/list_background"/> </android.support.v4.widget.DrawerLayout> 1 <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:id="@+id/frame_container" android:layout_width="match_parent" android:layout_height="match_parent" /> <RelativeLayout android:id="@+id/container" android:layout_width="match_parent"layout_width="wrap_content" android:layout_height="match_parent" > <TextView android:id="@+id/textviewHeading" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="5dp" android:fontFamily="fonts/Dosis.otf" android:text="@string/heading_chapter" android:textSize="25sp" android:visibility="gone" /> <ListView android:id="@+id/listviewChapters" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_above="@+id/imageviewBanner" android:layout_below="@+id/textviewHeading" android:layout_marginTop="5dp" /> </ListView> <ImageView android:id="@+id/imageviewBanner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:src="@drawable/banner" android:visibility="invisible" /> </RelativeLayout> <ListView android:id="@+id/list_slidermenu" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:background="@color/list_background" android:choiceMode="singleChoice" android:divider="@color/list_divider" android:dividerHeight="1dp" android:listSelector="@drawable/list_selector" android:background="@color/list_background"/> </android.support.v4.widget.DrawerLayout> 

Если я нажму Графический макет, я получаю это ниже. Исключение:

Введите описание изображения здесь

 Exception raised during rendering: com.android.layoutlib.bridge.MockView cannot be cast to android.view.ViewGroup Exception details are logged in Window > Show View > Error Log The following classes could not be instantiated: - android.support.v4.widget.DrawerLayout (Open Class, Show Error Log) 

Затем в Java Build path -> libraries

Введите описание изображения здесь

Затем в Java Build path -> order and export :

Введите описание изображения здесь

В приведенном выше скриншоте, если я check android.support.v4.jar я получаю следующую ошибку Multiple Dex в консоли:

 [2014-11-04 18:35:30 - Dex Loader] Unable to execute dex: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl; [2014-11-04 18:35:30 - main-android] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl; 

Введите описание изображения здесь

Просто проверьте флажок android version and support lib, он решит вашу проблему.

Если я правильно понимаю, вам просто нужно вызвать новое действие непосредственно при выборе опции в ListView (и полностью отказаться от GalleryFragment ). Что-то вроде:

 private void displayView(int position) { if (position == 0) { Intent i = new Intent(getActivity(), GalleryActivity.class); startActivity(i); return } // ... same as before, for the other fragments 

Не обязательно отображать фрагменты при нажатии на параметры ящика.

 1.)If it is showing multiple dex file, then remove v4 library 2.)Show us which project you are adding as a library in this project and in that check the v4 library 3.)Clean the project from Project -> clean and run the project 

Пользователь @Dev Предложил мне, как использовать макет ящика и где в них произошла ошибка. Поэтому я могу решить эту проблему.

Runtime Exception: ошибка раздувания класса android.support.v4.widget.DrawerLayout :

  • Эта ошибка произошла из-за неправильной реализации макета ящика. Я помещаю три прямых дочерних элемента в макет ящика, что будет происходить ошибка. В соответствии с DrawerLayout, он взял двух детей напрямую.

  • В макете ящика, если я разместил два прямых макета, решила проблему. Вот почему я использую макет кадра как родительский макет внутри Layer Layout, а затем, наконец, добавляю представление списка после макета кадра, чтобы отобразить навигационный ящик.

activity_main.xml:

 <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:id="@+id/frame_container" android:layout_width="match_parent" android:layout_height="match_parent" > <RelativeLayout android:id="@+id/container" android:layout_width="wrap_content" android:layout_height="match_parent" > <TextView android:id="@+id/textviewHeading" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="5dp" android:fontFamily="fonts/Dosis.otf" android:text="@string/heading_chapter" android:textSize="25sp" android:visibility="gone" /> <ListView android:id="@+id/listviewChapters" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_above="@+id/imageviewBanner" android:layout_below="@+id/textviewHeading" android:layout_marginTop="5dp" > </ListView> <ImageView android:id="@+id/imageviewBanner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:src="@drawable/banner" android:visibility="invisible" /> </RelativeLayout> </FrameLayout> <ListView android:id="@+id/list_slidermenu" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:background="@color/list_background" android:choiceMode="singleChoice" android:divider="@color/list_divider" android:dividerHeight="1dp" android:listSelector="@drawable/list_selector" /> </android.support.v4.widget.DrawerLayout> 1 <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:id="@+id/frame_container" android:layout_width="match_parent" android:layout_height="match_parent" > <RelativeLayout android:id="@+id/container" android:layout_width="wrap_content" android:layout_height="match_parent" > <TextView android:id="@+id/textviewHeading" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="5dp" android:fontFamily="fonts/Dosis.otf" android:text="@string/heading_chapter" android:textSize="25sp" android:visibility="gone" /> <ListView android:id="@+id/listviewChapters" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_above="@+id/imageviewBanner" android:layout_below="@+id/textviewHeading" android:layout_marginTop="5dp" > </ListView> <ImageView android:id="@+id/imageviewBanner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:src="@drawable/banner" android:visibility="invisible" /> </RelativeLayout> </FrameLayout> <ListView android:id="@+id/list_slidermenu" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:background="@color/list_background" android:choiceMode="singleChoice" android:divider="@color/list_divider" android:dividerHeight="1dp" android:listSelector="@drawable/list_selector" /> </android.support.v4.widget.DrawerLayout> 

Невозможно выполнить dex: несколько файлов dex определяют :

  • Эта ошибка произошла из-за поддержки android-v4.jar. Эта банка не была обновлена ​​в моем проекте. Он составляет почти 325 килобайт. Так что я понимаю, чтобы проверить банку из другого образца приложения. В этом примере приложения размер банки будет 530 кб. Затем, когда я нахожу его, jm-проект qmr был ошибкой. Это не обновленная банка. Поэтому я удалил банку, помещенную в qmr, и добавил образец проекта jar.Then он решил мою проблему.

  • Ошибка будет возникать, если я помещу банку в этот каталог (E:\Android Eclipse\Android\sdk\extras\android\support\v4) . Этот Каталог применим, чтобы добавить банку. Но не в моем проекте.

  • Поскольку другие jars, такие как gson.jar, libgoogleanalytics.jar имеют каталог в E:\workspace\Workspace1\sample-android\libs. Поэтому в моем проекте добавьте банку в том же каталоге, чтобы решить мою проблему

Да, я решил вашу проблему просто

 Right click on Project Build Path -> Configure Build Path add your external support v4 then check the support v4 from order and export Make sure your Android and Android Dependencies libraries are checked Clean & Build your Project 

Я думаю, что это решит вашу проблему

Intereting Posts
SlidingPaneLayout – как всегда показывать небольшую часть слайд-представления (например, в тусовках) Считыватель штрих-кодов / Qr для Android Может ли пользовательский вид использоваться как TabItem? Стиль Android указывает цвет кнопки Как получить высоту текста с фиксированной шириной и получить длину текста, которая вписывается в рамку? Получить группы контактов? Проблемы с реализацией режима контекстного действия в фрагменте recyclerview XML-атрибут пароля для Android – устарел Как я могу получить путь от изображения в галерее Android? Включить отладку USB на Android Как установить массив как тег для любого вида через макет xml в android Как заставить просмотр recycler начинать добавлять элементы из центра? Диалоговое окно Android Image / Popup того же размера, что и изображение, и без рамки Build.gradle в проекте vs. build.gradle в приложении Несколько корневых тегов в Android Studio