Erreur de gonflage de la classe android.support.design.widget.NavigationView


87

J'ai suivi un didacticiel du nouveau composant NavigationView dans la bibliothèque de conception de support et je ne parviens pas à résoudre ce message d'erreur:

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

J'ai essayé toutes les solutions de contournement ici

Erreur lors de l'utilisation de tout élément de la bibliothèque de support de conception Android

mais le message d'erreur existe toujours.

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

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

Toute aide serait appréciée!

Modifier - ajouter @ menu / tiroir & @ menu / tiroir_header & stacktrace

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

tiroir_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 (seulement une partie d'entre eux)

Il a jeté trois exceptions comme ci-dessous: all souligne que les problèmes sont causés par la ligne de "setContentView (layout)" à dans 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

Pouvez-vous également publier le xml @layout/drawer_headeret le xml @menu/drawer?
TheoK

Veuillez également publier l'intégralité de la trace de la pile.
CommonsWare

@TheoK Je modifie ma question ~ merci
pptang

Eh bien, il ne trouve pas l'une de vos ressources. Mais je ne sais pas laquelle.
CommonsWare

J'ai fait face à cela parce que j'ai remanié du code. Fondamentalement, j'ai refactoré une variable appelée parent à parentFragment pour être plus précise et le studio Android a également effectué le changement dans styles.xml. J'ai dû réparer le style à parent = "<whatever-base-class>" et cela a fonctionné à nouveau.
Saifur Rahman Mohsin

Réponses:


83

En fait, ce n'est pas la question de la primarycolortextmise à niveau ou de la rétrogradation des dépendances. Ce problème se produira probablement lorsque la version de votre appcompatbibliothèque et de la bibliothèque de support de conception ne correspond pas.

Exemple de condition de correspondance

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

Pouvez-vous m'expliquer comment détecter ce problème pour un débutant comme moi plz :)
Jerome2606

Si vous déclarez toujours une variable pour des choses comme celle-ci dans votre app / build.gradle, vous vous évitez d'oublier de changer, comme dans:def supportVersion = '25.1.0' compile "com.android.support:appcompat-v7:$supportVersion" compile "com.android.support:design:$supportVersion"
riper

3
les deux bibliothèques utilisées par moi sont les mêmes mais obtiennent toujours la même erreur. Vérifiez le code ci-dessous compilez 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:design:23.4.0'
Maya Mohite

1
Je devrais utiliser support of version 26. J'utilise 'com.android.support:appcompat-v7:26.1.0'. Est-ce 26.1.0correct?
Nimmagadda Gowtham

Erreur rencontrée sur Gradle 4.1 avec compileSdkVersion 25 buildToolsVersion '26 .0.2 'et compilez' 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 'Résolu en apportant les modifications ci-dessous compilez' 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

J'ai eu une erreur similaire. Quand j'utilise

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

fonctionne pour moi lorsque je supprime les éléments de thème android: textColorPrimary et 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>

Essayez de travailler avec un thème d'application très simple pour commencer.

ÉDITER:

Ce tutoriel vous aidera. Je crois comprendre que l'utilisation de "android: textColorPrimary" nécessite un niveau API minimum 21. Utiliser la même balise sans "android:" utilise la bibliothèque de support de conception. Tout widget de bibliothèque de support essaiera de trouver l'élément "textColorPrimary" au lieu de "android: textColorPrimary" et s'il ne parvient pas à trouver le même, il renvoie l'erreur mentionnée ci-dessus.


Merci, cela fonctionne comme un charme !!!! mais savez-vous pourquoi nous devrions supprimer ces deux attributs ??
pptang

4
Je n'ai jamais eu ces deux attributs et j'obtiens toujours la même erreur. Des idées?
Shubham Chaudhary

1
Pour moi, cela échoue toujours même si j'ajoute android: textColorPrimary dans values-v21 / styles.xml
David

1
Veuillez considérer la réponse que Balman Rawat a donnée ci-dessous. Dans mon cas, j'ai dû appliquer les deux réponses.
DateStackOverflowUser

@Parag Naik Vous avez sauvé ma semaine grâce :) J'adore cette communauté.
Yasin Kaçmaz

41

J'ai également eu la même erreur. Dans mon cas, certaines des ressources étaient uniquement en drawable-v21. Copiez également ces ressources dans un dossier pouvant être dessiné. Cela a résolu le problème pour moi.

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

C'est le problème majeur.


2
Ouaip. Pareil pour moi. Il y avait un fichier XML dessinable utilisant un vectordans le v21dossier et rien de correspondant dans le dossier standard <21. Merci.
eoinzy

1
Spot on .. J'ai ajouté les images dans drawable-xx mais pas dans drawable. C'était le problème
Rahul Hawge

1
merci beaucoup mon selector.xml et un autre fichier xml étaient là aussi. Je jsut le copier et enregistrer le problème
MohammadL

27

Si vous avez déjà migré vers androidx, vous devez modifier votre mise en page xml de

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

à

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

15

J'ai eu la même erreur, je l'ai résolue en ajoutant app:itemTextColor="@color/a_color"à ma vue de navigation:

<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"/>

Vous pouvez toujours utiliser android:textColorPrimaryet android:textColorSecondarydans votre thème avec cette méthode.


J'ai essayé votre solution de contournement à partir d' ici , mais j'ai toujours le même message d'erreur. Merci pour votre aide quand même.
pptang

15

Eh bien, j'essayais de corriger cette erreur. Et aucun n'a fonctionné pour moi. Je n'ai pas pu trouver de solution. Scénario:

J'allais juste faire un à l' Navigation Drawer Projectintérieur d'Android Studio 2.1.2 Et quand j'essayais de changer l'icône Android par défaut, nav_header_main.xmlj'obtenais des erreurs étranges. J'ai compris que je déposais mon PNGlogo dans le fichier ...\app\src\main\res\drawable-21. Quand j'essaye de mettre mon logo PNG dans ...\app\src\main\res\drawablebam! Toutes les erreurs étranges disparaissent.

Voici quelques traces de pile lorsque je mettais PNG dans un drawable-21dossier:

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:

Comme vous pouvez le voir, la trace de pile ci-dessus comprend:

android.support.design.widget.NavigationView.inflateHeaderView (NavigationView.java:262) sur android.support.design.widget.NavigationView. (NavigationView.java:173) sur android.support.design.widget.NavigationView. (NavigationView. java: 95)


1
Très bien, merci pour la réponse. Cela semble une sorte de réponse qui a été évitée dans tous les autres messages. J'essayais de créer drawable-v21 et de mettre tout là-dedans alors que j'avais déjà un dossier drawable et que je devais juste le placer là
quant

11

Je l'ai résolu en déclassant en gradle de

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

à

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

Il semble que je reçois toujours des problèmes lorsque je mets à jour un composant d'Android Studio. J'en ai marre.


1
La bibliothèque de support de conception est à peine liée à Android Studio.
Sotti

J'ai eu le même problème et je n'ai pu le résoudre qu'en rétrogradant comme @Ton l'a mentionné. Je ne sais vraiment pas comment la bibliothèque de support est liée aux mises à jour du plugin et de la plate-forme Android Studio, mais chaque fois que je mets à jour une partie ou une autre ne fonctionne pas pour moi. Je suggère vraiment cette réponse.
Saraschandraa

1
Plutôt rétrogradant, j'ai mis à niveau Compact pour qu'il corresponde à 23.1.0. Je pense qu'il est préférable d'utiliser des bibliothèques plus récentes ma réponse ci-dessus stackoverflow.com/a/38141666/3172518
karan

8

Aucun des correctifs ci-dessus n'a fonctionné pour moi.

Ce qui a fonctionné pour moi a changé

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

à

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

Vous devez évidemment ajouter colorWhite à vos couleurs.xml


8

Suivre les étapes ci-dessous supprimera sûrement cette erreur.

  • Trouvez le widget à l'origine de l'erreur.
  • Accédez au fichier de mise en page dans lequel ce widget est déclaré.
  • Vérifiez toutes les ressources (dessinables, etc.) utilisées dans ce fichier.
  • Ensuite, assurez-vous que la ressource est présente dans toutes les versions de drawables (drawable-v21, drawable etc.)

À votre santé!!


5

Comme Parag Naik le mentionne correctement (et Lạng Hoàng se développe), le problème survient lors de la définition de textColorPrimary sur autre chose qu'une liste d'états de couleurs. Vous pouvez donc définir textColorPrimary comme liste d'états. Il y a un problème dans le suivi des bogues Android à propos de colorPrimary étant une liste d'états avec une seule couleur: https://code.google.com/p/android/issues/detail?id=172353

Donc, pour votre thème dans 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>

Et le fichier primary_color_statelist.xml réel:

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

Dans mon cas, j'ai eu la même erreur lorsque j'exécute l'application dans un appareil de version kitkat API 19. J'ai compris le problème; J'avais des ressources dessinables qui se trouvaient dans le répertoire drawable-v21 (qui est utilisé pour les versions d'API 21 Lollipop). Je viens de mettre les mêmes ressources dans le dossier "Drawable" pour travailler avec la version inférieure à l'API 21. Cela fonctionne. Vous pouvez le mettre dans le répertoire correspondant


4

Pour moi, j'ai rencontré cette erreur plusieurs fois,

Erreur de gonflage de la classe android.support.design.widget.NavigationView # 28 et # 29

La solution qui fonctionne pour moi est que vous devez faire correspondre votre bibliothèque de conception de support et votre bibliothèque de support appcompat.

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

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

Pour moi, ils doivent correspondre. :) Ça marche pour moi!


3

Juste pour ceux qui arrivent encore à ce problème. Je suis arrivé au même problème mais toutes les solutions ici ne fonctionnent pas pour moi.

Prenez juste un œil sur la classe NavigationView avec le signal de logcat, j'ai trouvé que le problème venait de cette ligne de code:

itemTextColor = this.createDefaultColorStateList(16842806);

Donc, il semble lié à itemTextColor comme Aenur56 l'a mentionné. J'ai donc essayé la solution d'Aenur56 mais cela ne fonctionne pas.

Jetez un œil sur la ligne de code ci-dessus, je remarque qu'il y a ColorStateList. Donc, je crée un puis défini pour itemTextColor puis cela fonctionne.

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

J'espère que cela vous aidera!


3

Aucune des solutions ci-dessus ne m'a aidé. J'ai trouvé cela sur une autre page Web et cela a fonctionné pour moi - "Dans project.properties de la bibliothèque de conception, définissez la cible sur 21 ou le plus élevé disponible, puis nettoyez la bibliothèque de conception, appcomapt et votre projet et profitez-en"

J'espère que cela aidera!


Où est project.properties de la bibliothèque de conception?
8oh8

2

Assurez-vous que vos drawables pour le menu sont dans le bon dossier, le mien où mis dans drawablev21, ce qui a provoqué un pointeur nul vers la ressource.

Correction de l'achat de déplacer mes icônes vers le dossier Drawables


1

J'ai eu le même problème après la mise à niveau de la bibliothèque de support et aucune des réponses n'a fonctionné pour moi. Enfin, j'ai résolu le téléchargement de la dernière version des outils de compilation et la mise à niveau de build.gradle versbuildToolsVersion "23.0.1"


1

Une chose à vérifier est que vous avez correctement appliqué votre thème dans votre fichier AndroidManifest.xml. Dans mon cas, j'avais omis l' attribut android: theme . Par exemple:

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

1

MIEUX J'AI AMÉLIORÉ com.android.support:appcompat-v7:23.1.0

comme @Ton l'a dit downgradecompile 'com.android.support:design:23.1.0'

MAIS pourquoi ne pas mettre à jour com.android.support:appcompat-v7:23.1.1

La mise à niveau finale a fonctionné pour moi, profitez-en

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

Alors pourquoi utiliser une bibliothèque plus ancienne. Je pense qu'il est maintenant préférable d'utiliser à la fois la conception et la mise à niveau compacte.


1
Je mets à niveau mon un, comme comment @karan a écrit, et cela fonctionne pour moi.
Alexiscanny du

1

J'avais aussi ce même problème, après avoir cherché près de 3 heures, je découvre que le problème était dans mon fichier drawable_menu.xml, il était mal écrit: D


1

Cette erreur peut être due aux raisons mentionnées ci-dessous.

  1. Ce problème se produira probablement lorsque la version de votre bibliothèque appcompat et de votre bibliothèque de support de conception ne correspond pas. Exemple de condition de correspondance

     compile 'com.android.support:appcompat-v7:24.2.0' // appcompat library
    
     compile 'com.android.support:design:24.2.0' //design support library
    
  2. Si votre fichier de thème dans les styles ne contient que ces deux éléments,

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

puis ajoutez également ColorAccent. Cela devrait ressembler un peu à ceci.

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

j'ai édité. Cela signifie ajouter ColorAccent également s'il n'est pas présent.
Vishal Puri

1

Moyen générique de résoudre des problèmes tels que Error inflating class X:

  1. check cause trace de pile et il devrait y avoir Resources$NotFoundExceptioncomme ceci:
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 est en fait un entier exact du fichier R.java généré.
  2. Trouvez 0x7f0b0066qui pointera vers le fichier xml qui n'a pas pu être gonflé (trouvé).
  3. Dans la plupart des cas, c'est parce que le répertoire layoutn'a pas cette ressource, mais certains en layout-XXXont.
  4. Et la solution est de mettre des ressources dans tous les répertoires requis. Ou juste au moins dedans layout.

1

C'est un projet étrange mais propre et un projet de reconstruction qui a fonctionné pour moi.


1

Dans mon cas, j'avais

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

et dans la configuration de l'application:

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

J'ai donc changé le XML en:

com.google.android.material.navigation.NavigationView...

c'est correct après la migration vers androidx merci
Stark

0

J'ai trouvé une solution ... si vous avez utilisé app: srcCompat changer pour android: src cette solution a fonctionné pour moi :)


0

J'étais confronté à cette erreur dans Xamarin. Cela était dû à certains fichiers qui étaient présents dans le dossier drawable-v21 . J'ai donc copié ces fichiers (probablement des fichiers d'icônes) dans le dossier pouvant être dessiné et l'erreur a disparu.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.