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


87

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

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'
}

Проект build.gradle

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

styles.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

drawer.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 (только часть из них)

Он выдал три исключения, как показано ниже: все указывает, что проблемы вызваны строкой «setContentView (layout)» в 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

Можете ли вы также разместить xml @layout/drawer_headerи xml @menu/drawer?
TheoK 08

Кроме того, опубликуйте всю трассировку стека.
CommonsWare

@TheoK Я редактирую свой вопрос ~ спасибо
pptang

Что ж, он не может найти один из ваших ресурсов. Я не знаю, что именно.
CommonsWare

Я столкнулся с этим, потому что переделал некоторый код. В основном я реорганизовал переменную с именем parent в parentFragment, чтобы быть более точным, и студия Android также внесла изменения в styles.xml. Пришлось исправить стиль обратно на parent = «<whatever-base-class>», и он снова сработал.
Сайфур Рахман Мохсин

Ответы:


83

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

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

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

Можете ли вы объяснить мне, как обнаружить эту проблему для новичка, такого как я,
пожалуйста

Если вы всегда объявляете переменную для подобных вещей в вашем app / build.gradle, вы не позволяете себе забыть изменить, как в:def supportVersion = '25.1.0' compile "com.android.support:appcompat-v7:$supportVersion" compile "com.android.support:design:$supportVersion"
riper

3
обе библиотеки, которые я использую, одинаковы, но все равно получают ту же ошибку. Проверьте ниже код compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:design:23.4.0'
Maya

1
Я должен использовать support of version 26. Я использую 'com.android.support:appcompat-v7:26.1.0'. Является ли 26.1.0правильно?
Nimmagadda Gowtham

Ошибка в Gradle 4.1 с compileSdkVersion 25 buildToolsVersion '26 .0.2 'и компиляцией' com.android.support:appcompat-v7:23.0.0 'compile' com.android.support:design:23.0.0 'compile' com.android .support: support-v4: 23.0.0 'Решено внесение изменений ниже compile' com.android.support:appcompat-v7:25.0.0 'compile' com.android.support:design:25.0.0 'compile' com.android .support: support-v4: 25.0.0 '
iambegineer

45

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

<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», и если он не сможет найти то же самое, он выдает вышеупомянутую ошибку.


Спасибо, работает как шарм !!!! но знаете ли вы, почему мы должны удалить эти два атрибута ??
pptang

4
У меня никогда не было этих двух атрибутов, и я до сих пор получаю ту же ошибку. Любые идеи?
Шубхам Чаудхари

1
Для меня это все еще не удается, даже если я добавлю android: textColorPrimary в values-v21 / styles.xml
Дэвид

1
Пожалуйста, обратите внимание на ответ, который Балман Рават дал ниже. В моем случае мне пришлось применить оба ответа.
NewestStackOverflowUser

@Parag Naik Спасибо, что спасли мою неделю :) Мне нравится это сообщество.
Ясин Качмаз

41

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

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

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


2
Ага. Мне то же. Был файл XML с возможностью рисования с использованием vectorв v21папке и ничего соответствующего в стандартной папке <21. Спасибо.
eoinzy 01

1
На месте .. Я добавил изображения в drawable-xx, но не в drawable. Вот в чем проблема
Рахул Хоуг

1
Большое спасибо, мой selector.xml и другой файл xml тоже были там. Я просто копирую его и сохраняю проблему
MohammadL

27

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

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

к

<com.google.android.material.navigation.NavigationView ... />

15

У меня была такая же ошибка, я решил ее, добавив 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в своей теме с помощью этого метода.


Я пробовал ваш обходной путь отсюда , но все равно получаю то же сообщение об ошибке. В любом случае спасибо за вашу помощь.
pptang

15

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

Я как раз собирался сделать 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:2424at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3956at android.app.ActivityThread.access$700(ActivityThread.java:169at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394at android.os.Handler.dispatchMessage(Handler.java:107at android.os.Looper.loop(Looper.java:194at android.app.ActivityThread.main(ActivityThread.java:5433at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                             at java.lang.reflect.Method.invoke(Method.java:525at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:924at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:691at 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:687at android.view.LayoutInflater.rInflate(LayoutInflater.java:746at android.view.LayoutInflater.inflate(LayoutInflater.java:489at android.view.LayoutInflater.inflate(LayoutInflater.java:396at android.view.LayoutInflater.inflate(LayoutInflater.java:352at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140at edu.uswat.fwd82.findmedoc.MainActivity.onCreate(MainActivity.java:22at android.app.Activity.performCreate(Activity.java:5179at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1146at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2336at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3956at android.app.ActivityThread.access$700(ActivityThread.java:169at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394at android.os.Handler.dispatchMessage(Handler.java:107at android.os.Looper.loop(Looper.java:194at android.app.ActivityThread.main(ActivityThread.java:5433at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                             at java.lang.reflect.Method.invoke(Method.java:525at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:924at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:691at 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:417at android.view.LayoutInflater.createView(LayoutInflater.java:587at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687at android.view.LayoutInflater.rInflate(LayoutInflater.java:746at android.view.LayoutInflater.inflate(LayoutInflater.java:489at android.view.LayoutInflater.inflate(LayoutInflater.java:396at android.view.LayoutInflater.inflate(LayoutInflater.java:352at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140at edu.uswat.fwd82.findmedoc.MainActivity.onCreate(MainActivity.java:22at android.app.Activity.performCreate(Activity.java:5179at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1146at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2336at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3956at android.app.ActivityThread.access$700(ActivityThread.java:169at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394at android.os.Handler.dispatchMessage(Handler.java:107at android.os.Looper.loop(Looper.java:194at android.app.ActivityThread.main(ActivityThread.java:5433at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                             at java.lang.reflect.Method.invoke(Method.java:525at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:924at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:691at 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. java: 95)


1
Очень хорошо, спасибо за ответ. Это похоже на ответ, которого избегали во всех других сообщениях. Я пытался создать drawable-v21 и установить все там, в то время как у меня уже была папка с возможностью рисования, и мне просто нужно было поместить ее туда,
квант

11

Я решил, что это понижение в Gradle с

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

к

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

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


1
Библиотека поддержки дизайна почти не связана с Android Studio.
Сотти,

У меня была такая же проблема, и я мог решить ее только с помощью понижения, как упоминал @Ton. На самом деле не знаю, как библиотека поддержки связана с обновлениями плагинов и платформ Android Studio, но каждый раз, когда я обновляю то или иное, у меня не работает. Я действительно предлагаю такой ответ.
Сарасчандра

1
Вместо более ранней версии я обновил Compact до версии 23.1.0. Я думаю, что лучше всего использовать более новые библиотеки, мой ответ выше stackoverflow.com/a/38141666/3172518
karan

8

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

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

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

к

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

Очевидно, вам нужно добавить colorWhite в свой файл colors.xml.


8

Следующие ниже шаги обязательно устранят эту ошибку.

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

Ура !!


5

Как правильно упоминает Параг Наик (и Лонг Хоанг расширяет его), проблема возникает при установке 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>

5

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


4

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

Ошибка надувания класса 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'

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


3

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

Просто взгляните на класс 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>

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


3

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

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


Где project.properties библиотеки дизайна?
8oh8

2

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

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


1

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


1

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

<application ... android:theme="@style/Your.Theme.Here" ... >

1

ЛУЧШЕ Я ОБНОВЛЕН 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'

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


1
Я обновляю свой, как написал @karan, и у меня он работает.
Alexiscanny

1

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


1

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

  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>

я редактировал. Это означает, что добавьте ColorAccent также, если его нет.
Vishal Puri

1

Общий способ решения таких проблем, как 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.

1

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


1

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

<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...

это верно после перехода на androidx, спасибо
Старк,

0

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


0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.