Ошибка при раздувании класса android.support.design.widget.NavigationView

Я следовал руководству по новому компоненту NavigationView в библиотеке дизайна поддержки и могу t получить через это сообщение об ошибке:

Error inflating class android.support.design.widget.NavigationView

Я пробовал все обходные пути здесь

Ошибка при использовании любых элементов библиотеки поддержки дизайна Android

но сообщение об ошибке все еще существует.

XML

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true" >
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

    <include layout="@layout/toolbar" android:id="@+id/mainToolBar" />

    <fragment android:name="com.ais.cherry.fragment.LoginFragment"
        android:id="@+id/loginFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/mainToolBar" />
    <fragment     android:name="com.ais.cherry.fragment.WaterFallFragment"
        android:id="@+id/mainFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/mainToolBar" />
    <fragment android:name="com.ais.cherry.fragment.SearchFragment"
        android:id="@+id/searchFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/mainToolBar" />
    <fragment android:name="com.ais.cherry.fragment.ChatMainFragment"
        android:id="@+id/chatMainFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/mainToolBar" />
    <fragment android:name="com.ais.cherry.fragment.ProfileFragment"
        android:id="@+id/profileFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/mainToolBar" />


    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@android:color/white"
        app:itemTextColor="#212121"
        app:headerLayout="@layout/drawer_header"
        app:menu="@menu/drawer" />
</android.support.v4.widget.DrawerLayout>

build.gradle

buildscript {
    repositories {
        mavenCentral()
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
    applicationId "com.ais.cherry"
    minSdkVersion 16
    targetSdkVersion 22      
    multiDexEnabled true
    renderscriptTargetApi 22
    renderscriptSupportModeEnabled true

}
dependencies {
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.android.support:support-v4:22.2.0'
    compile 'com.android.support:design:22.2.0'
    compile 'com.android.support:recyclerview-v7:22.2.0'
}

Сборка проекта.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

стили.xml

<?xml version="1.0" encoding="utf-8"?>

<!-- Base application theme. -->
<style name="AppTheme" parent="AppTheme.Base">

</style>

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:windowActionModeOverlay">true</item>
    <item name="android:actionModeStyle">@style/AppTheme.ActionModeStyle</item>
    <item name="android:windowActionBar">false</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowNoTitle">true</item>
    <!-- Support library compatibility -->
    <item name="windowActionBarOverlay">true</item>

    <!-- ActionBar color -->
    <item name="colorPrimary">#E91E63</item>
    <!-- Status bar color -->
    <item name="colorPrimaryDark">#C2185B</item>
    <!-- Window color -->
    <item name="android:windowBackground">@color/white</item>
    <!-- ActionBar title text -->
    <item name="android:titleTextStyle">@style/AppTheme.MyActionBarTitleText</item>

    <item name="colorAccent">#9E9E9E</item>

    <item name="drawerArrowStyle">@style/AppTheme.MyDrawerArrowStyle</item>

    <!-- color for actionMenu-->
    <item name="actionMenuTextColor">#FFFFFF</item>
    <item name="android:actionMenuTextColor">#FFFFFF</item>
    <!-- android:textColorSecondary is the color of the menu
   overflow icon (three vertical dots) -->
    <item name="android:textColorPrimary">#212121</item>
    <item name="android:textColorSecondary">#FFFFFF</item>
    <!--Navigation bar color-->
    <item name="android:navigationBarColor">#E91E63</item>
    <!--Status bar color-->
    <item name="android:statusBarColor">#C2185B</item>
</style>

Любая помощь будет оценена по достоинству!

Изменить -- добавить @menu/drawer & @menu/drawer_header и stacktrace

ящик.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/nav_first_fragment"
            android:icon="@drawable/home_view"
            android:checked="true"
            android:title="@string/main"/>
        <item
            android:id="@+id/nav_second_fragment"
            android:icon="@drawable/comment_view"
            android:title="@string/chat"/>
        <item
            android:id="@+id/nav_third_fragment"
            android:icon="@drawable/user_view"
            android:title="@string/profile"/>
        <item android:title="@string/search">
            <menu>
                <item
                    android:title="@string/clothes"/>
                <item
                    android:title="@string/pants"/>
            </menu>
        </item>
    </group>
</menu>

drawer_header.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="192dp"
    android:background="?attr/colorPrimaryDark"
    android:padding="16dp"
    android:theme="@style/ThemeOverlay.AppCompat.Dark"
    android:gravity="bottom">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/title"
        android:textColor="@android:color/white"
            android:textAppearance="@style/TextAppearance.AppCompat.Body1"/>
</LinearLayout>

StackTrace (только часть из них)

It thrown out three exceptions as below : all points out that the problems is caused by the line of "setContentView(layout)" at in layout.xml.

java.lang.RuntimeException: Unable to start activity  ComponentInfo{com.ais.cherry/com.ais.cherry.activity.FirstActivity}:    android.view.InflateException: Binary XML file line #32: Error inflating    class android.support.design.widget.NavigationView

Caused by: android.view.InflateException: Binary XML file line #32: Error inflating class android.support.design.widget.NavigationView

Caused by: java.lang.reflect.InvocationTargetException

Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x0

person pptang    schedule 08.06.2015    source источник
comment
Можете ли вы также опубликовать xml @layout/drawer_header и xml @menu/drawer?   -  person TheoK    schedule 08.06.2015
comment
Кроме того, пожалуйста, опубликуйте всю трассировку стека.   -  person CommonsWare    schedule 08.06.2015
comment
@TheoK Я редактирую свой вопрос~ спасибо   -  person pptang    schedule 09.06.2015
comment
Ну, он не может найти один из ваших ресурсов. Я не знаю, какой, хотя.   -  person CommonsWare    schedule 09.06.2015
comment
Я столкнулся с этим, потому что я провел рефакторинг некоторого кода. По сути, я реорганизовал переменную с именем parent в parentFragment, чтобы она была более точной, и студия Android также внесла изменения в styles.xml. Пришлось исправить стиль обратно на parent=">", и он снова заработал.   -  person Saifur Rahman Mohsin    schedule 22.04.2017


Ответы (25)


На самом деле дело не в primarycolortext, обновлении или понижении зависимостей. Эта проблема, скорее всего, возникнет, если версия вашей appcompat библиотеки и библиотеки поддержки дизайна не совпадают.

Пример условия соответствия

compile 'com.android.support:appcompat-v7:23.1.1' // appcompat library
compile 'com.android.support:design:23.1.1'       //design support library
person Balman Rawat    schedule 24.11.2015
comment
Можете ли вы объяснить мне, как обнаружить эту проблему для новичка, такого как я, плз :) - person Jerome2606; 29.11.2016
comment
Если вы всегда объявляете переменную для подобных вещей в своем приложении/build.gradle, вы не забудете внести изменения, например: def supportVersion = '25.1.0' compile "com.android.support:appcompat-v7:$supportVersion" compile "com.android.support:design:$supportVersion" - person riper; 28.12.2016
comment
обе библиотеки, которые я использую, одинаковы, но все равно получают ту же ошибку. Проверьте приведенный ниже код, скомпилируйте «com.android.support:appcompat-v7:23.4.0», скомпилируйте «com.android.support:design:23.4.0». - person Maya Mohite; 21.01.2017
comment
Я должен использовать support of version 26. Я использую 'com.android.support:appcompat-v7:26.1.0'. Правильно ли 26.1.0? - person Nimmagadda Gowtham; 07.12.2017
comment
Ошибка, обнаруженная в Gradle 4.1 с compileSdkVersion 25 buildToolsVersion '26.0.2' и скомпилировать 'com.android.support:appcompat-v7:23.0.0' скомпилировать 'com.android.support:design:23.0.0' скомпилировать 'com.android .support:support-v4:23.0.0' Решено внести следующие изменения: .поддержка:поддержка-v4:25.0.0' - person iambegineer; 14.01.2018
comment
если у вас есть только dimen.xml(v21), ваше приложение вылетит на Android версии 4 и ниже. Создайте еще один dimens.xml, скопируйте все атрибуты из dimens.xml(v21) во вновь созданный dimens.xml. Исправлена ​​ошибка. - person meyasir; 29.10.2018

У меня была аналогичная ошибка. когда я использую

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">

    <item name="colorPrimary">#673AB7</item>
    <item name="colorPrimaryDark">#512DA8</item>
    <item name="colorAccent">#00BCD4</item>
    <item name="android:textColorPrimary">#212121</item>
    <item name="android:textColorSecondary">#727272</item>

</style>

у меня работает, когда я удаляю элементы темы android: textColorPrimary и android: textColorSecondary.

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">

    <item name="colorPrimary">#673AB7</item>
    <item name="colorPrimaryDark">#512DA8</item>
    <item name="colorAccent">#00BCD4</item>

</style>

Попробуйте для начала поработать с очень простой темой приложения.

РЕДАКТИРОВАТЬ:

Это руководство поможет вам. Насколько я понимаю, для использования «android: textColorPrimary» требуется минимальный уровень API 21. Использование того же тега без «android:» использует библиотеку поддержки дизайна. Любой виджет библиотеки поддержки попытается найти элемент «textColorPrimary» вместо «android: textColorPrimary», и если ему не удастся найти то же самое, он выдаст вышеупомянутую ошибку.

person Parag Naik    schedule 09.06.2015
comment
Спасибо, это работает как шарм!!!! но знаете ли вы, почему мы должны удалить эти два атрибута?? - person pptang; 10.06.2015
comment
У меня никогда не было этих двух атрибутов, и я все равно получаю ту же ошибку. Любые идеи? - person Shubham Chaudhary; 27.08.2015
comment
Для меня это все равно не работает, даже если я добавляю android:textColorPrimary в values-v21/styles.xml - person David; 09.10.2015
comment
Обратите внимание на ответ, который Балман Рават дал ниже. В моем случае мне пришлось применить оба ответа. - person NewestStackOverflowUser; 12.03.2016
comment
@Parag Naik Вы спасли мою неделю, спасибо :) Я люблю это сообщество. - person Yasin Kaçmaz; 12.07.2016
comment
В моем случае я не удалял эти строки, я просто заменил значение цвета на @color/color_alias - person Nikita Leshchev; 06.06.2017

У меня тоже была такая же ошибка. В моем случае некоторые ресурсы были только в drawable-v21. Скопируйте эти ресурсы в папку с возможностью рисования. Это решило проблему для меня.

Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x0 

Это главная проблема.

person Sajal    schedule 28.05.2016
comment
Ага. Мне то же. Был файл XML с возможностью рисования, использующий vector в папке v21, и ничего соответствующего в стандартной папке ‹21. Спасибо. - person eoinzy; 01.07.2016
comment
В точку. Я добавил изображения в drawable-xx, но не в drawable. В этом была проблема - person Rahul Hawge; 10.11.2016
comment
Большое спасибо, мой selector.xml и другие файлы xml тоже были там. Я просто копирую его и сохраняю проблему - person MohammadL; 10.05.2018

Если вы уже перешли на androidx, вам следует изменить макет XML с

<android.support.design.widget.NavigationView ... />

to

<com.google.android.material.navigation.NavigationView ... />
person Mark Pazon    schedule 01.07.2018

У меня была такая же ошибка, я решил ее, добавив app:itemTextColor="@color/a_color" в свой вид навигации:

<android.support.design.widget.NavigationView
    android:id="@+id/navigation_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="left"
    app:headerLayout="@layout/layout_drawer_header"
    app:menu="@menu/drawer_menu"
    app:itemTextColor="@color/primary"/>

Вы все еще можете использовать android:textColorPrimary и android:textColorSecondary в своей теме с помощью этого метода.

person Pidikan    schedule 11.06.2015
comment
Я попробовал ваш обходной путь из здесь, но все равно получил то же сообщение об ошибке. Спасибо за вашу помощь в любом случае. - person pptang; 13.06.2015

Итак, я пытался исправить эту ошибку. И ни один не работал у меня. Я не смог найти решение. Сценарий:

Я просто собирался сделать Navigation Drawer Project внутри Android Studio 2.1.2. И когда я пытался изменить значок Android по умолчанию в nav_header_main.xml, я получал странные ошибки. Я понял, что бросал свой логотип PNG в ...\app\src\main\res\drawable-21. Когда я пытаюсь поместить свой PNG-логотип в ...\app\src\main\res\drawable, бам! Все странные ошибки исчезают.

Ниже приведены некоторые трассировки стека, когда я помещал PNG в папку drawable-21:

08-17 17:29:56.237 6644-6678/myAppName  E/dalvikvm: Could not find class 'android.util.ArrayMap', referenced from method com.android.tools.fd.runtime.Restarter.getActivities
08-17 17:30:01.674 6644-6644/myAppName E/AndroidRuntime: FATAL EXCEPTION: main
                                                                         java.lang.RuntimeException: Unable to start activity ComponentInfo{myAppName.MainActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class <unknown>
                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2372)
                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424)
                                                                             at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3956)
                                                                             at android.app.ActivityThread.access$700(ActivityThread.java:169)
                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394)
                                                                             at android.os.Handler.dispatchMessage(Handler.java:107)
                                                                             at android.os.Looper.loop(Looper.java:194)
                                                                             at android.app.ActivityThread.main(ActivityThread.java:5433)
                                                                             at java.lang.reflect.Method.invokeNative(Native Method)
                                                                             at java.lang.reflect.Method.invoke(Method.java:525)
                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:924)
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:691)
                                                                             at dalvik.system.NativeStart.main(Native Method)
                                                                          Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class <unknown>
                                                                             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 android.view.LayoutInflater.inflate(LayoutInflater.java:352)
                                                                             at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)
                                                                             at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                                                                             at edu.uswat.fwd82.findmedoc.MainActivity.onCreate(MainActivity.java:22)
                                                                             at android.app.Activity.performCreate(Activity.java:5179)
                                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1146)
                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2336)
                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424) 
                                                                             at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3956) 
                                                                             at android.app.ActivityThread.access$700(ActivityThread.java:169) 
                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394) 
                                                                             at android.os.Handler.dispatchMessage(Handler.java:107) 
                                                                             at android.os.Looper.loop(Looper.java:194) 
                                                                             at android.app.ActivityThread.main(ActivityThread.java:5433) 
                                                                             at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                             at java.lang.reflect.Method.invoke(Method.java:525) 
                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:924) 
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:691) 
                                                                             at dalvik.system.NativeStart.main(Native Method) 
                                                                          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)
                                                                             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 android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
                                                                             at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                                                                             at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                             at edu.uswat.fwd82.findmedoc.MainActivity.onCreate(MainActivity.java:22) 
                                                                             at android.app.Activity.performCreate(Activity.java:5179) 
                                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1146) 
                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2336) 
                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424) 
                                                                             at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3956) 
                                                                             at android.app.ActivityThread.access$700(ActivityThread.java:169) 
                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394) 
                                                                             at android.os.Handler.dispatchMessage(Handler.java:107) 
                                                                             at android.os.Looper.loop(Looper.java:194) 
                                                                             at android.app.ActivityThread.main(ActivityThread.java:5433) 
                                                                             at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                             at java.lang.reflect.Method.invoke(Method.java:525) 
                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:924) 
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:691) 
                                                                             at dalvik.system.NativeStart.main(Native Method) 
                                                                          Caused by: android.view.InflateException: Binary XML file line #14: Error inflating class ImageView
                                                                             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
                                                                             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 android.support.design.internal.NavigationMenuPresenter.inflateHeaderView(NavigationMenuPresenter.java:189)
at android.support.design.widget.NavigationView.inflateHeaderView(NavigationView.java:262)
at android.support.design.widget.NavigationView.<init>(NavigationView.java:173)
at android.support.design.widget.NavigationView.<init>(NavigationView.java:95)
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) 
                                                                             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 android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
                                                                             at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                                                                             at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                             at edu.uswat.fwd82.findmedoc.MainActivity.onCreate(MainActivity.java:22) 
                                                                             at android.app.Activity.performCreate(Activity.java:5179) 
                                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1146) 
                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2336) 
                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424) 
                                                                             at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3956) 
                                                                             at android.app.ActivityThread.access$700(ActivityThread.java:169) 
                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394) 
                                                                             at android.os.Handler.dispatchMessage(Handler.java:107) 
                                                                             at android.os.Looper.loop(Looper.java:194) 
                                                                             at android.app.ActivityThread.main(ActivityThread.java:5433) 
                                                                             at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                             at java.lang.reflect.Method.invoke(Method.java:525) 
                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:924) 
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:691) 
                                                                             at dalvik.system.NativeStart.main(Native Method) 
                                                                          Caused by: java.lang.NullPointerException
                                                                             at android.content.res.ResourcesEx.getThemeDrawable(ResourcesEx.java:459)
                                                                             at android.content.res.ResourcesEx.loadDrawable(ResourcesEx.java:435)
                                                                             at android.content.res.TypedArray.getDrawable(TypedArray.java:609)
                                                                             at android.widget.ImageView.<init>(ImageView.java:120)
                                                                             at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:57)
                                                                             at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:53)
                                                                             at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:106)
                                                                             at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:980)
                                                                             at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:1039)
                                                                             at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)
                                                                            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:

Как вы можете видеть, приведенная выше трассировка стека включает:

android.support.design.widget.NavigationView.inflateHeaderView(NavigationView.java:262) в android.support.design.widget.NavigationView.(NavigationView.java:173) в android.support.design.widget.NavigationView.(NavigationView. ява:95)

person fWd82    schedule 17.08.2016
comment
Очень хорошо, спасибо за ответ. Кажется, это ответ, которого избегали во всех других сообщениях. Я пытался создать drawable-v21 и установить все там, в то время как у меня уже была папка с возможностью рисования, и мне просто нужно было поместить ее туда. - person quant; 03.11.2018

Я решил понизить рейтинг в gradle с

compile 'com.android.support:design:23.1.0'

to

compile 'com.android.support:design:23.0.1'

Кажется, у меня всегда возникают проблемы при обновлении любого компонента Android Studio. Устать от этого.

person Ton    schedule 10.11.2015
comment
Библиотека поддержки дизайна почти не связана с Android Studio. - person Sotti; 04.12.2015
comment
У меня была та же проблема, и я мог решить ее только путем понижения рейтинга, как упоминал @Ton. На самом деле не знаю, как библиотека поддержки связана с обновлениями плагинов и платформы Android Studio, но каждый раз, когда я обновляю то или иное, у меня не работает. Я действительно предлагаю этот ответ. - person Saraschandraa; 19.05.2016
comment
Вместо понижения версии я обновил Compact до версии 23.1.0. Я думаю, что лучше всего использовать более новые библиотеки, мой ответ выше stackoverflow.com/a/38141666/3172518 - person karan; 01.07.2016

Ни одно из вышеперечисленных исправлений не помогло мне.

То, что сработало для меня, менялось

<item name="android:textColorSecondary">#FFFFFF</item>

to

<item name="android:textColorSecondary">@color/colorWhite</item>

Вам, очевидно, нужно добавить colorWhite в ваш colors.xml

person Rafal Roszak    schedule 31.05.2016

Следуя приведенным ниже шагам, вы наверняка устраните эту ошибку.

  • Найдите виджет, вызывающий ошибку.
  • Перейдите к файлу макета, в котором объявлен этот виджет.
  • Проверьте все ресурсы (рисунки и т. д.), используемые в этом файле.
  • Затем убедитесь, что ресурс присутствует во всех версиях рисунков (drawable-v21, drawable и т. д.).

Ваше здоровье!!

person Prashant Paliwal    schedule 22.02.2018

Как правильно упоминает Параг Найк (и Лонг Хоанг расширяет), проблема возникает при установке textColorPrimary для чего-то другого, кроме списка состояний цвета. Таким образом, вы можете установить textColorPrimary в качестве списка состояний. В системе отслеживания ошибок Android есть проблема, связанная с тем, что colorPrimary является списком состояний только с одним цветом: https://code.google.com/p/android/issues/detail?id=172353

Итак, для вашей темы в styles.xml:

<style name="Base.Theme.Hopster" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>

    <item name="android:textColorPrimary">@color/primary_color_statelist</item>
</style>

И собственно файл primary_color_statelist.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- This is used when the Navigation Item is checked -->
    <item android:color="@color/primary_text_selected" android:state_checked="true" />
    <!-- This is the default text color -->
    <item android:color="@color/primary_text" />
</selector>
person Chris    schedule 31.08.2015

В моем случае у меня была такая же ошибка, когда я запускал приложение на устройстве версии kitkat API 19. Я понял проблему; У меня было несколько ресурсов для рисования, которые находились в каталоге drawable-v21 (который используется для версий из API 21 Lollipop). Я просто поместил те же ресурсы в папку «Drawable», чтобы работать с версией ниже API 21. Это работает. Вы можете поместить его в соответствующий каталог

person Jack    schedule 18.07.2018

Для меня я сталкивался с этой ошибкой много раз,

Ошибка расширения класса android.support.design.widget.NavigationView #28 и #29

Решение, которое работает для меня, заключается в том, что вы должны сопоставить свою библиотеку дизайна поддержки и библиотеку поддержки appcompat.

compile 'com.android.support:appcompat-v7:23.1.1'

compile 'com.android.support:design:23.1.1'

Для меня они должны совпадать. :) Меня устраивает!

person RoCk RoCk    schedule 29.12.2015

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

Просто взгляните на класс NavigationView с подсказкой из logcat, я обнаружил, что проблема возникает из этой строки кода:

itemTextColor = this.createDefaultColorStateList(16842806);

Итак, похоже, это связано с itemTextColor, как упоминал Aenur56. Итак, я попробовал решение Aenur56, но оно не работает.

Взгляните на строку кода выше, я заметил, что есть ColorStateList. Поэтому я создаю его, а затем устанавливаю для itemTextColor, после чего он работает.

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#00FF00" android:state_checked="true" />
    <item android:color="#000000" />
</selector>

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

person Lạng Hoàng    schedule 06.07.2015

Ни одно из приведенных выше решений не помогло мне. Я нашел это на какой-то другой веб-странице, и это сработало для меня: «В project.properties библиотеки дизайна установите цель на 21 или максимально доступную, затем очистите библиотеку дизайна, appcomapt и ваш проект и наслаждайтесь»

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

person Michał Stawski    schedule 16.07.2015
comment
Где находится project.properties библиотеки дизайна? - person 8oh8; 20.10.2016

Убедитесь, что ваши чертежи для меню находятся в правильной папке, моя — в drawablev21, поэтому это вызвало нулевой указатель на ресурс.

Исправлена ​​​​покупка перемещения моих значков в папку с чертежами.

person Ismael ozil    schedule 17.02.2018

У меня была такая же проблема после обновления библиотеки поддержки, и ни один из ответов не помог мне. Наконец, я решил загрузить последнюю версию инструментов сборки и обновить build.gradle до buildToolsVersion "23.0.1".

person Erick    schedule 04.12.2015

Еще раз проверьте, правильно ли вы применили тему в файле AndroidManifest.xml. В моем случае я пропустил атрибут android:theme. Например:

<application ... android:theme="@style/Your.Theme.Here" ... >
person David Conlisk    schedule 19.04.2016

Я ЛУЧШЕ ОБНОВИЛ com.android.support:appcompat-v7:23.1.0

как @Ton сказал понизить версию compile 'com.android.support:design:23.1.0'

НО Почему бы не обновить com.android.support:appcompat-v7:23.1.1

Последнее обновление мне понравилось

compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'

Так зачем использовать старую библиотеку. Я думаю, сейчас лучше использовать как дизайн, так и компактный модернизированный.

person karan    schedule 01.07.2016
comment
Я обновляю свой, как написал @karan, и он у меня работает. - person Alexiscanny; 11.07.2016

У меня тоже была такая же проблема, посмотрев почти 3 часа, я обнаружил, что проблема была в моем файле drawable_menu.xml, он был написан неправильно: D

person Antarix    schedule 24.11.2016

Эта ошибка может быть вызвана причинами, указанными ниже.

  1. Эта проблема, скорее всего, возникнет, если версии вашей библиотеки appcompat и библиотеки поддержки дизайна не совпадают. Пример условия соответствия

     compile 'com.android.support:appcompat-v7:24.2.0' // appcompat library
    
     compile 'com.android.support:design:24.2.0' //design support library
    
  2. Если в вашем файле темы в стилях есть только эти два,

     <item name="colorPrimary">#4A0958</item>
     <item name="colorPrimaryDark">#4A0958</item>
    

затем добавьте ColorAccent. Это должно выглядеть примерно так.

 <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">

  <item name="colorPrimary">#4A0958</item>
  <item name="colorPrimaryDark">#4A0958</item>
  <item name="colorAccent">#4A0958</item>

 </style>
person Vishal Puri    schedule 12.09.2016
comment
я отредактировал. Это значит добавить ColorAccent и если его нет. - person Vishal Puri; 29.11.2016

Общий способ решения таких проблем, как Error inflating class X:

  1. проверьте трассировку стека причины, и должно быть Resources$NotFoundException вроде этого:
Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f0b0066
    at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:190)
    at android.content.res.Resources.loadXmlResourceParser(Resources.java:2094)
    at android.content.res.Resources.getLayout(Resources.java:1111)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:424)
  1. Resource ID на самом деле является точным целым числом из сгенерированного файла R.java.
  2. Найдите 0x7f0b0066, который будет указывать на файл xml, который не удалось раздуть (найти).
  3. В большинстве случаев это связано с тем, что в каталоге layout нет этого ресурса, а в каталоге layout-XXX он есть.
  4. И решение состоит в том, чтобы поместить ресурс во все необходимые каталоги. Или хотя бы в layout.
person eleven    schedule 20.07.2018

Это странно, но чистый проект и проект перестройки сработали для меня.

person shaby    schedule 03.04.2019

В моем случае у меня было

<android.support.design.widget.NavigationView...

и в конфигурации приложения:

implementation 'com.google.android.material:material:1.1.0'
implementation 'androidx.appcompat:appcompat:1.1.0'

Поэтому я изменил XML на:

com.google.android.material.navigation.NavigationView...
person Mihai    schedule 04.04.2020

Я нашел решение... если вы использовали изменение app:srcCompat на android:src, это решение сработало для меня :)

person Khun Htetz Naing    schedule 15.12.2018

Я столкнулся с этой ошибкой в ​​Xamarin. Это было связано с наличием некоторых файлов в папке drawable-v21. Поэтому я скопировал эти файлы (вероятно, файлы значков) в папку drawable, и ошибка исчезла.

person Juned Khan Momin    schedule 22.10.2019