Errore durante il gonfiaggio della classe android.support.design.widget.NavigationView


87

Ho seguito un tutorial sul nuovo componente NavigationView nella libreria di progettazione di supporto e non riesco a leggere questo messaggio di errore:

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

Ho provato ogni soluzione alternativa qui

Errore durante l'utilizzo di qualsiasi elemento della libreria di supporto alla progettazione Android

ma il messaggio di errore esiste ancora.

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

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

Qualsiasi aiuto sarebbe apprezzato!

Modifica: aggiungi @ menu / drawer & @ menu / drawer_header e 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 (solo una parte di essi)

Ha lanciato tre eccezioni come di seguito: all sottolinea che i problemi sono causati dalla riga di "setContentView (layout)" 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

Puoi pubblicare anche xml @layout/drawer_headere xml @menu/drawer?
TheoK

Inoltre, invia l'intera traccia dello stack.
CommonsWare

@TheoK Modifica la mia domanda ~ grazie
pptang

Beh, non riesce a trovare una delle tue risorse. Non so quale, però.
CommonsWare

L'ho affrontato perché ho refactoring del codice. Fondamentalmente ho riformattato una variabile chiamata parent in parentFragment per essere più accurata e Android Studio ha apportato la modifica anche a styles.xml. Ho dovuto ripristinare lo stile in parent = "<wwhat-base-class>" e ha funzionato di nuovo.
Saifur Rahman Mohsin

Risposte:


83

In realtà non si tratta primarycolortextdell'aggiornamento o del downgrade delle dipendenze. Questo problema si verificherà probabilmente quando la versione della appcompatlibreria e la libreria di supporto alla progettazione non corrispondono.

Esempio di condizione di corrispondenza

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

Puoi spiegarmi come rilevare questo problema per un principiante come me per favore :)
Jerome2606

Se dichiari sempre una variabile per cose come questa nella tua app / build.gradle eviti di dimenticarti di cambiare, come in:def supportVersion = '25.1.0' compile "com.android.support:appcompat-v7:$supportVersion" compile "com.android.support:design:$supportVersion"
più vecchio

3
entrambe le librerie usate da me sono le stesse ma continuano a ricevere lo stesso errore. Controlla sotto il codice compilare 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:design:23.4.0'
Maya Mohite

1
Dovrei usare support of version 26. Sto usando 'com.android.support:appcompat-v7:26.1.0'. È 26.1.0corretto?
Nimmagadda Gowtham

Errore riscontrato su Gradle 4.1 con compileSdkVersion 25 buildToolsVersion '26 .0.2 'e compilare' 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 'Risolto facendo le seguenti modifiche 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

Ho avuto un errore simile. Quando uso

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

funziona per me quando rimuovo gli elementi del tema android: textColorPrimary e 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>

Prova a lavorare con un tema dell'app molto semplice per iniziare.

MODIFICARE:

Questo tutorial ti aiuterà. Da quanto mi risulta, l'utilizzo di "android: textColorPrimary" richiede un livello API minimo 21. L'utilizzo dello stesso tag senza "android:" utilizza la libreria di supporto alla progettazione. Qualsiasi widget della libreria di supporto proverà a trovare l'elemento "textColorPrimary" invece di "android: textColorPrimary" e se non riesce a trovare lo stesso genera l'errore sopra menzionato.


Grazie, funziona a meraviglia !!!! ma sai perché dovremmo rimuovere questi due attributi ??
pptang

4
Non ho mai avuto questi due attributi e ricevo ancora lo stesso errore. Qualche idea?
Shubham Chaudhary

1
Per me continua a fallire anche se aggiungo android: textColorPrimary in values-v21 / styles.xml
David

1
Si prega di considerare la risposta che Balman Rawat ha dato di seguito. Nel mio caso ho dovuto applicare entrambe le risposte.
NewestStackOverflowUser

@Parag Naik Hai salvato la mia settimana grazie :) Amo questa comunità.
Yasin Kaçmaz

41

Ho anche avuto lo stesso errore. Nel mio caso alcune delle risorse erano solo in drawable-v21. Copia anche quelle risorse nella cartella disegnabile. Questo ha risolto il problema per me.

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

Questo è il problema principale.


2
Sì. Stessa cosa per me. C'era un file XML disegnabile usando un vectornella v21cartella e niente corrispondente nella cartella standard <21. Grazie.
eoinzy

1
Azzeccato .. Ho aggiunto le immagini in drawable-xx ma non in drawable. Questo era il problema
Rahul Hawge

1
grazie mille anche il mio selector.xml e altri file xml. Lo copio e salvo il problema
MohammadL

27

Se hai già migrato a androidx, dovresti cambiare il tuo layout xml da

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

per

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

15

Ho avuto lo stesso errore, l'ho risolto aggiungendo app:itemTextColor="@color/a_color"alla mia visualizzazione di navigazione:

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

Puoi ancora usare android:textColorPrimarye android:textColorSecondarynel tuo tema con questo metodo.


Ho provato la tua soluzione alternativa da qui , ma ho ancora lo stesso messaggio di errore. Grazie comunque per il tuo aiuto.
pptang

15

Bene, quindi stavo cercando di correggere questo errore. E nessuno ha funzionato per me. Non sono riuscito a trovare una soluzione. Scenario:

Stavo per creare un Navigation Drawer ProjectAndroid Studio 2.1.2 interno e quando provo a cambiare l'icona predefinita di Android in nav_header_main.xmlho ricevuto alcuni strani errori. Ho capito che stavo inserendo il mio PNGlogo nel file ...\app\src\main\res\drawable-21. Quando provo a mettere il mio logo PNG in ...\app\src\main\res\drawablebam! Tutti gli strani errori scompaiono.

Di seguito sono riportate alcune tracce dello stack quando stavo inserendo PNG nella drawable-21cartella:

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:

Come puoi vedere, lo Stack Trace sopra include:

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


1
Molto bene, grazie per la risposta. Sembra una specie di risposta che è stata evitata in tutti gli altri post. Stavo cercando di creare drawable-v21 e impostare tutto lì mentre avevo già una cartella disegnabile e dovevo semplicemente posizionarla lì
quant

11

L'ho risolto declassando in gradle da

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

per

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

Sembra che ricevo sempre problemi quando aggiorno qualsiasi componente di Android Studio. Stancarsi di esso.


1
Design Support Library è a malapena correlato ad Android Studio.
Sotti

Ho avuto lo stesso problema e ho potuto risolverlo solo effettuando il downgrade come menzionato da @Ton. Davvero non so come la libreria di supporto sia correlata agli aggiornamenti del plug-in e della piattaforma di Android Studio, ma ogni volta che aggiorno alcuni o altri non funziona per me. Suggerisco davvero questa risposta.
Saraschandraa

1
Piuttosto il downgrade ho aggiornato Compact per abbinare 23.1.0. Penso che è meglio usare le librerie più recenti la mia risposta sopra stackoverflow.com/a/38141666/3172518
Karan

8

Nessuna delle soluzioni di cui sopra ha funzionato per me.

Ciò che ha funzionato per me stava cambiando

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

per

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

Ovviamente devi aggiungere colorWhite al tuo colors.xml


8

I passaggi seguenti rimuoveranno sicuramente questo errore.

  • Trova il widget che causa l'errore.
  • Vai al file di layout in cui è dichiarato quel widget.
  • Controlla tutte le risorse (drawables ecc.) Utilizzate in quel file.
  • Quindi assicurati che la risorsa sia presente in tutte le versioni di drawable (drawable-v21, drawable ecc.)

Saluti!!


5

Come dice correttamente Parag Naik (e Lạng Hoàng si espande), il problema sorge quando si imposta textColorPrimary su qualcosa di diverso da un elenco di stati dei colori. Quindi puoi impostare textColorPrimary come elenco di stati. C'è un problema nel bug tracker di Android relativo al fatto che colorPrimary è un elenco di stati con un solo colore: https://code.google.com/p/android/issues/detail?id=172353

Quindi per il tuo tema in 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>

E il file primary_color_statelist.xml effettivo:

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

Nel mio caso, ho avuto lo stesso errore quando ho eseguito l'app nel dispositivo versione Kitkat API 19. Ho capito qual è il problema; Avevo alcune risorse disegnabili che si trovavano nella directory drawable-v21 (che viene utilizzata per le versioni dall'API 21 Lollipop). Ho appena messo le stesse risorse nella cartella "Drawable" per lavorare con la versione sotto l'API 21. Funziona. Puoi metterlo nella directory corrispondente


4

Per me, ho riscontrato questo errore molte volte,

Errore durante il gonfiaggio della classe android.support.design.widget.NavigationView # 28 e # 29

La soluzione che funziona per me è che devi abbinare la tua libreria di progettazione di supporto e la tua libreria di compatibilità di app di supporto.

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

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

Per me devono corrispondere. :) Per me funziona!


3

Solo per chi arriva ancora a questo problema. Sono arrivato allo stesso problema ma tutte le soluzioni qui non funzionano per me.

Basta dare un'occhiata alla classe NavigationView con spunto da logcat, ho scoperto che il problema deriva da questa riga di codice:

itemTextColor = this.createDefaultColorStateList(16842806);

Quindi, sembra correlato a itemTextColor come menzionato da Aenur56. Quindi ho provato con la soluzione di Aenur56 ma non funziona.

Dai un'occhiata alla riga di codice sopra, ho notato che c'è ColorStateList. Quindi ne creo uno, poi lo imposto per itemTextColor e poi funziona.

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

Spero che aiuti!


3

Nessuna delle soluzioni sopra mi ha aiutato. L'ho trovato su un'altra pagina web e ha funzionato per me: "In project.properties della libreria di design imposta l'obiettivo su 21 o il più alto disponibile, quindi pulisci la libreria di design, appcomapt e il tuo progetto e divertiti"

Spero che possa aiutare!


Dov'è project.properties della libreria di design?
8oh8

2

Assicurati che i tuoi drawable per il menu siano nella cartella corretta, il mio è stato inserito in drawablev21, quindi questo ha causato un nullpointer alla risorsa.

Risolto il problema con lo spostamento delle mie icone nella cartella Drawables


1

Ho avuto lo stesso problema dopo aver aggiornato la libreria di supporto e nessuna delle risposte ha funzionato per me. Alla fine ho risolto il download dell'ultima versione degli strumenti di build e l'aggiornamento in build.gradle abuildToolsVersion "23.0.1"


1

Una cosa da ricontrollare è di aver applicato correttamente il tema nel file AndroidManifest.xml. Nel mio caso, avevo omesso l' attributo android: theme . Per esempio:

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

1

MEGLIO HO AGGIORNATO com.android.support:appcompat-v7:23.1.0

come @Ton ha detto downgradecompile 'com.android.support:design:23.1.0'

MA perché non aggiornare com.android.support:appcompat-v7:23.1.1

L'aggiornamento finale ha funzionato per me

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

Allora perché usare la vecchia libreria. Penso che ora sia meglio usare sia il design che l'aggiornamento compatto.


1
Aggiornamento il mio, come ha scritto @karan, e per me funziona.
Alexiscanny

1

Ho anche riscontrato lo stesso problema, dopo aver guardato quasi 3 ore ho scoperto che il problema era nel mio file drawable_menu.xml, era scritto erroneamente: D


1

Questo errore può essere causato da motivi come indicato di seguito.

  1. Questo problema si verificherà probabilmente quando la versione della libreria appcompat e della libreria di supporto per la progettazione non corrisponde. Esempio di condizione di corrispondenza

     compile 'com.android.support:appcompat-v7:24.2.0' // appcompat library
    
     compile 'com.android.support:design:24.2.0' //design support library
    
  2. Se il tuo file del tema negli stili ha solo questi due,

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

quindi aggiungi anche ColorAccent. Dovrebbe assomigliare un po 'a questo.

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

ho modificato. Significa aggiungere ColorAccent anche se non è presente.
Vishal Puri

1

Modo generico per risolvere problemi come Error inflating class X:

  1. controlla la traccia dello stack della causa e dovrebbe essere Resources$NotFoundExceptioncosì:
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 è effettivamente il numero intero esatto dal file R.java generato.
  2. Trova 0x7f0b0066che punterà al file xml che non è stato possibile gonfiare (trovato).
  3. Nella maggior parte dei casi è perché la directory layoutnon ha questa risorsa, ma alcuni lo layout-XXXhanno.
  4. E la soluzione è mettere le risorse in tutte le directory richieste. O almeno solo dentro layout.

1

È un progetto strano ma pulito e il progetto di ricostruzione ha funzionato per me.


1

Nel mio caso l'ho avuto

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

e nella configurazione dell'app:

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

Quindi ho cambiato l'XML in:

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

questo è corretto dopo la migrazione ad androidx grazie
Stark

0

Ho trovato la soluzione ... se hai usato app: srcCompat cambia in Android: src questa soluzione ha funzionato per me :)


0

Stavo affrontando questo errore in Xamarin. Ciò era dovuto ad alcuni file presenti nella cartella drawable-v21 . Quindi ho copiato quei file (probabilmente file di icone) nella cartella disegnabile e l'errore è sparito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.