Ошибка раздувания класса и файла android.support.v7.widget.CardView

Я хочу использовать CardView в своем проекте, но когда я запускаю свое приложение, я получаю следующую ошибку. Я использую Eclipse .

 Error: Error inflating class and android.support.v7.widget.CardView The graphical view of my xml file says 'The following classes could not be instantiated: - android.support.v7.widget.CardView (Open Class, Show Error Log) See the Error Log (Window > Show View) for more details.' 

Пожалуйста помоги.

Это макет для моего фрагмента, где я использовал CardView

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.log.MyContactsFragment" > <!-- TODO: Update blank fragment layout --> <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/cvContactDetails" android:layout_width="match_parent" android:layout_height="200dp" android:layout_gravity="center" android:background="?android:attr/selectableItemBackground" android:clickable="false" android:elevation="20dp" > <TextView android:id="@+id/tvContacts" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Contact Info" /> <Button android:id="@+id/bDelete" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Delete" /> <Button android:id="@+id/bExport" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Export to phone contacts" /> </android.support.v7.widget.CardView> 

Это макет для моей деятельности.

 <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawerLayout" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:id="@+id/flMainContent" android:layout_width="match_parent" android:layout_height="match_parent" > </FrameLayout> <ListView android:id="@+id/lvLeftDrawer" android:layout_width="200dp" android:layout_height="match_parent" android:layout_gravity="left" android:alpha="255" android:background="#0B2161" android:divider="@null" android:choiceMode="singleChoice" > </ListView> <ListView android:id="@+id/lvRightDrawer" android:layout_width="200dp" android:layout_height="match_parent" android:layout_gravity="right" android:alpha="255" android:background="#0B2161" android:divider="@null" android:choiceMode="singleChoice" > </ListView> </android.support.v4.widget.DrawerLayout> 

Это мой логарифм

 FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.log/com.example.log.HomeScreenActivity}: android.view.InflateException: Binary XML file line #9: Error inflating class android.support.v7.widget.CardView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) at android.app.ActivityThread.access$600(ActivityThread.java:130) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) Caused by: android.view.InflateException: Binary XML file line #9: Error inflating class android.support.v7.widget.CardView at android.view.LayoutInflater.createView(LayoutInflater.java:613) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687) at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) at android.view.LayoutInflater.inflate(LayoutInflater.java:396) at com.example.log.MyContactsFragment.onCreateView(MyContactsFragment.java:60) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1504) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:942) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1121) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1484) at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:571) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1163) at android.app.Activity.performStart(Activity.java:5018) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2032) ... 11 more Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:417) at android.view.LayoutInflater.createView(LayoutInflater.java:587) 25 more Caused by: java.lang.NoClassDefFoundError: android.support.v7.cardview.R$styleable at android.support.v7.widget.CardView.initialize(CardView.java:203) at android.support.v7.widget.CardView.<init>(CardView.java:101) ... 28 more 

Кто-то, кто столкнулся с той же проблемой или решил ее, прокомментируйте.

Solutions Collecting From Web of "Ошибка раздувания класса и файла android.support.v7.widget.CardView"

Наверное, я могу ответить на свой вопрос.

Перейдите в Файл -> Импорт -> Существующий код Android в рабочую область -> Обзор (перейдите на страницу sdk / extras / android / support / v7 / cardview) -> Нажмите ok -> Нажмите Finish

Теперь ваш исследователь проекта покажет картографию как проект.

Щелкните правой кнопкой мыши проект cardview -> Свойства -> Android (Левая панель) -> Включить isLibrary (отметьте галочкой) -> Применить -> ok

Теперь щелкните правой кнопкой мыши по вашему проекту -> Свойства -> Android (левая панель) -> Добавить (под библиотекой) -> cardview -> apply -> ok

Теперь щелкните правой кнопкой мыши по вашему проекту еще раз -> путь сборки -> настроить путь сборки -> Вкладка «Проекты», добавьте карту

Вы сделали.

Я думаю, ваша проблема не в вашем XML-макете, а в настройках build.gradle.

Если вы хотите использовать библиотеку поддержки для Recyclerview или CardView в более низких API-интерфейсах, вам не только нужно импортировать библиотеку v7, но также необходимо самостоятельно импортировать поддержку Recycler View и Card View.

Как это:

 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.+' compile 'com.android.support:cardview-v7:21.0.+' compile 'com.android.support:recyclerview-v7:21.0.+' compile 'com.android.support:support-v4:21.0.0' } 

Об этом свидетельствуют документы Google: https://developer.android.com/training/material/compatibility.html

См. Раздел зависимостей.

Кроме того, вы можете загрузить образец Google RecyclerView для выкапывания.

Надеюсь, это поможет!

В моем случае я должен сделать то же самое, что добавить android.support.v7.widget.CardView как проект библиотеки, а также добавить + проверить его jar-файл в java build path

  1. Перейдите в Файл -> Импорт -> Существующий код Android в рабочую область -> Обзор (перейдите на страницу sdk / extras / android / support / v7 / cardview) -> Нажмите ok -> Нажмите Finish

  2. Щелкните правой кнопкой мыши проект cardview -> Свойства -> Android (Левая панель) -> Включить isLibrary (отметьте галочкой) -> Применить -> ok

  3. Щелкните правой кнопкой мыши по вашему проекту -> Свойства -> Android (левая панель) -> Добавить (под библиотекой) -> cardview -> apply -> ok

  4. Щелкните правой кнопкой мыши по вашему проекту еще раз -> построить путь -> настроить путь сборки -> в библиотеках -> добавить jar -> expand cardview -> expand libs -> выбрать android.support.v7.widget.CardView.jar

  5. Под заказ и экспорт -> проверить android.support.v7.widget.CardView.jar -> нажмите ok

Я потратил несколько часов на это, для меня последний фрагмент головоломки шел к проекту «cardview», который был импортирован в Eclipse в качестве проекта Android, затем щелкнул правой кнопкой мыши> свойства> android> и изменил его с Android 2.1 на Lollipop!

Если вы используете intellij, используйте эти шаги, это действительно работает

  • Нажмите в своем проекте,
  • Щелкните правой кнопкой мыши -> откройте настройки модуля (f4)
  • Import cardview из \ sdk \ extras \ android \ support \ v7 \
  • Добавить файл .jar в модуль cardview
  • Нажмите на свой проект и укажите зависимость модуля от вида карты
  • Теперь нажмите кнопку (+) на карте -> андроид -> наверху вы увидите флажок (библиотечный модуль), включите его.
  • Нажмите «ОК» и закройте диалоговое окно настроек.
  • Перестройте свой проект и запустите его.

У меня ошибка, связанная с добавлением зависимостей

Виджеты RecyclerView и CardView являются частью библиотек поддержки V7. Чтобы использовать эти виджеты в своем проекте, добавьте эти зависимости Gradle к модулю вашего приложения:

Зависимостей {… compile 'com.android.support:cardview-v7:21.0.+' compile 'com.android.support:recyclerview-v7:21.0.+'}

http://developer.android.com/training/material/lists-cards.html

Эти шаги работают для меня 🙂

Перейдите в Файл -> Импорт -> Существующий код Android в рабочую область -> Обзор (перейдите на страницу sdk / extras / android / support / v7 / cardview) -> Нажмите ok -> Нажмите Finish

Теперь ваш исследователь проекта покажет картографию как проект.

Щелкните правой кнопкой мыши проект cardview -> Свойства -> Android (Левая панель) -> Включить isLibrary (отметьте галочкой) -> Применить -> ok

Теперь щелкните правой кнопкой мыши по вашему проекту -> Свойства -> Android (левая панель) -> Добавить (под библиотекой) -> cardview -> apply -> ok

Теперь щелкните правой кнопкой мыши по вашему проекту еще раз -> путь сборки -> настроить путь сборки -> Вкладка «Проекты», добавьте карту

Еще один шаг, который вам потребуется, чтобы удалить ошибку, то есть порядок карты.

Поэтому щелкните правой кнопкой мыши на проекте еще раз -> Свойства -> Android (левая панель) -> выберите карту в библиотечном окне -> и перейдите к началу

@sunil

Как сказано ранее:

  1. Перейдите в Файл -> Импорт -> Существующий код Android в рабочую область -> Обзор (перейдите на страницу sdk / extras / android / support / v7 / cardview) -> Нажмите ok -> Нажмите Finish

  2. Щелкните правой кнопкой мыши проект cardview -> Свойства -> Android (Левая панель) -> Включить isLibrary (отметьте галочкой) -> Применить -> ok

  3. Щелкните правой кнопкой мыши по вашему проекту -> Свойства -> Android (левая панель) -> Добавить (под библиотекой) -> cardview -> apply -> ok

Если это не сработает, приступайте к добавлению и удалению отдельных банков одного и того же пакета из папки проекта библиотеки библиотеки теперь импортированного кода android-support-v7-cardview/libs . Удалите банку, очистите проект и повторите попытку. Удалите проект, который предложил один парень, добавьте, удалите все внешние Jar, связанные с картой (я думаю, что это вызывает конфликты). Очистите проект и, надеюсь, это сработает для вас.

Примечание. Мне лично пришлось изменить уровень целевой сборки библиотеки карт с 4.0.3 до 5.0, а затем вернуться к 4.1.2 , каждый раз очищая проект, чтобы он работал.

Чтобы устранить эту проблему. Сначала вы должны добавить вид карты из

  1. Закройте основной проект.
  2. Удалите поддержку android-support-v7-appcompat.
  3. Перезапустите Eclipse.
  4. Добавьте поддержку android-support-v7-appcompat.
  5. Очистить, Чтобы построить проект.
  6. Затем откройте основной проект и постройте все проекты.
  7. Ошибка все еще сохраняется. Перезапустить затмение. Вот и все.

Это подходит для меня.

Импортируйте библиотеку CardView в качестве проекта Eclipse вместо проекта Android

Я решил свою проблему, перезапустив eclipse. Также убедитесь, что вы добавили банки в путь сборки и пометили его для импорта / экспорта.

Это решение работает на меня.

1- Перейдите к разделу «sdk \ extras \ android \ m2repository \ com \ android \ support \ recyclerview-v7 * 22.1.1 *" (последняя версия 22.1.1).

2- Откройте файл recyclerview-v7-22.1.1.aar с помощью Winrar.

3- Существует файл jar с именем classes.jar. Скопируйте его в папку проекта libs.

4 Щелкните правой кнопкой мыши classes.jar, добавьте путь сборки.

Это оно.

Связанная с этим заметка: если вы используете библиотеки поддержки, вы уверены, что ваши зависимости верны, и вы попали сюда через поиск «Ошибка раздувания класса CardView», а затем убедитесь, что ваш XML-макет использует <android.support .v7.widget.CardView>, а не только <CardView>!

Две ошибки довольно похожи, и мне потребовалось несколько минут, чтобы понять, что я не обращал внимания на полное имя класса в сообщении об ошибке, и я использовал не поддерживающий <CardView> в своем макете, не понимая Это.

Если вы используете VISUAL STUDIO и получите эту ошибку, попробуйте перезапустить VS, а затем перестроить решение. Это сработало для меня. Надеюсь, это сэкономит кому-то время.