Erro ao aumentar a classe android.support.design.widget.NavigationView

87

Segui um tutorial do novo componente NavigationView na Support Design Library e não consigo ler esta mensagem de erro:

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

Eu tentei todas as soluções alternativas aqui

Erro ao usar qualquer elemento da Android Design Support Library

mas a mensagem de erro ainda existe.

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

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

Qualquer ajuda seria apreciada!

Editar - adicione @ 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 (apenas parte deles)

Ele lançou três exceções como abaixo: todos apontam que os problemas são causados ​​pela linha de "setContentView (layout)" em 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
pptang
fonte
Você também pode postar o xml @layout/drawer_headere o xml @menu/drawer?
TheoK
Além disso, poste o rastreamento de pilha inteiro.
CommonsWare
@TheoK Eu edito minha pergunta ~ obrigado
pptang
Bem, ele não consegue encontrar um de seus recursos. Eu não sei qual, entretanto.
CommonsWare
Enfrentei isso porque refatorei alguns códigos. Basicamente, refatorei uma variável chamada parent para parentFragment para ser mais precisa e o android studio fez a alteração em styles.xml também. Tive que corrigir o estilo de volta para parent = “<whatever-base-class>” e funcionou novamente.
Saifur Rahman Mohsin

Respostas:

83

Na verdade, não se trata de primarycolortextatualizar ou rebaixar as dependências. Esse problema provavelmente ocorrerá quando a versão de sua appcompatbiblioteca e a biblioteca de suporte de design não corresponderem.

Exemplo de condição de correspondência

compile 'com.android.support:appcompat-v7:23.1.1' // appcompat library
compile 'com.android.support:design:23.1.1'       //design support library
Balman Rawat
fonte
Você pode me explicar como detectar este problema para um novato como eu plz :)
Jerome2606
Se você sempre declarar uma variável para coisas como essa em seu app / build.gradle, você evita que se esqueça de mudar, como em:def supportVersion = '25.1.0' compile "com.android.support:appcompat-v7:$supportVersion" compile "com.android.support:design:$supportVersion"
riper
3
ambas as bibliotecas usadas por mim são as mesmas, mas ainda obtêm o mesmo erro. Verifique a compilação do código abaixo 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:design:23.4.0'
Maya Mohite
1
Eu deveria usar support of version 26. Estou usando 'com.android.support:appcompat-v7:26.1.0'. Está 26.1.0correto?
Nimmagadda Gowtham
Erro encontrado no Gradle 4.1 com compileSdkVersion 25 buildToolsVersion '26 .0.2 'e compilar' 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 'Resolvido fazendo as alterações abaixo compilar' com.android.support:appcompat-v7:25.0.0 'compilar' com.android.support:design:25.0.0 'compilar' com.android .support: support-v4: 25.0.0 '
iambegineer
45

Eu tive um erro semelhante. Quando eu 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>

funciona para mim quando eu removo os itens de 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>

Experimente trabalhar com um tema de aplicativo muito simples para começar.

EDITAR:

Este tutorial ajudará. Meu entendimento é que usar "android: textColorPrimary" requer um nível mínimo de API 21. Usar a mesma tag sem "android:" usa a biblioteca de suporte de design. Qualquer widget da biblioteca de suporte tentará encontrar o item "textColorPrimary" em vez de "android: textColorPrimary" e, se não conseguir encontrar o mesmo, gerará o erro mencionado acima.

Parag Naik
fonte
Obrigado, Funciona como um encanto !!!! mas você sabe por que devemos remover esses dois atributos ??
pptang
4
Nunca tive esses dois atributos e ainda recebo o mesmo erro. Alguma ideia?
Shubham Chaudhary
1
Para mim, ainda falha, mesmo se eu adicionar android: textColorPrimary em values-v21 / styles.xml
David,
1
Considere a resposta que Balman Rawat deu abaixo. No meu caso, tive que aplicar as duas respostas.
NewestStackOverflowUser
@Parag Naik Você salvou minha semana, obrigado :) Eu amo essa comunidade.
Yasin Kaçmaz
41

Eu também tive o mesmo erro. No meu caso, alguns dos recursos estavam apenas no drawable-v21. Copie esses recursos para a pasta drawable também. Isso resolveu o problema para mim.

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

Este é o principal problema.

Sajal
fonte
2
Sim. O mesmo para mim. Havia um arquivo XML drawable usando um vectorna v21pasta e nada correspondente na pasta padrão <21. Obrigado.
eoinzy 01 de
1
Spot on .. Eu adicionei as imagens em drawable-xx, mas não em drawable. Esse era o problema
Rahul Hawge
1
muito obrigado meu selector.xml e outro arquivo xml estavam lá também. Apenas copio e salvo o problema
MohammadL
27

Se você já migrou para androidx, você deve alterar seu layout xml de

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

para

<com.google.android.material.navigation.NavigationView ... />
Mark Pazon
fonte
15

Eu tive o mesmo erro, resolvi adicionando app:itemTextColor="@color/a_color"à minha visualização de navegação:

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

Você ainda pode usar android:textColorPrimarye android:textColorSecondaryem seu tema com este método.

Pidikan
fonte
Tentei sua solução alternativa a partir daqui , mas ainda recebo a mesma mensagem de erro. Obrigado por sua ajuda de qualquer maneira.
pptang
14

Bem, então eu estava tentando consertar esse erro. E nenhum funcionou para mim. Não fui capaz de descobrir a solução. Cenário:

Eu ia fazer um por Navigation Drawer Projectdentro do Android Studio 2.1.2 E quando tento alterar o ícone padrão do Android no nav_header_main.xml, estava recebendo alguns erros estranhos. Eu descobri que estava colocando meu PNGlogotipo no ...\app\src\main\res\drawable-21. Quando tento colocar meu logotipo PNG no ...\app\src\main\res\drawablebam! Todos os erros estranhos desaparecem.

A seguir estão alguns rastreamentos de pilha quando coloquei o PNG na drawable-21pasta:

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

Como você pode ver, o Stack Trace acima inclui:

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

fWd82
fonte
1
Muito bem, obrigado pela resposta. Parece uma resposta que foi evitada em todos os outros posts. Eu estava tentando criar drawable-v21 e definir tudo lá enquanto eu já tinha a pasta drawable e apenas tive que colocá-la lá
quant
11

Eu resolvi isso fazendo downgrade no gradle de

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

para

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

Parece que sempre tenho problemas quando atualizo qualquer componente do Android Studio. Cansado disso.

Tonelada
fonte
1
A Biblioteca de Suporte de Design quase não está relacionada ao Android Studio.
Sotti
Eu tive o mesmo problema e só pude resolvê-lo fazendo um downgrade conforme o @Ton mencionado. Realmente não sei como a Biblioteca de Suporte está relacionada ao plug-in do Android Studio e às atualizações da plataforma, mas toda vez que atualizo um ou outro não funciona para mim. Eu realmente sugiro esta resposta.
Saraschandraa de
1
Em vez de fazer o downgrade, atualizei o Compact para corresponder a 23.1.0. Acho que é melhor usar as bibliotecas mais recentes, minha resposta acima stackoverflow.com/a/38141666/3172518
karan
8

Nenhuma das correções acima funcionou para mim.

O que funcionou para mim estava mudando

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

para

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

Obviamente, você precisa adicionar colorWhite ao seu colors.xml

Rafal Roszak
fonte
8

Seguir as etapas abaixo certamente removerá esse erro.

  • Encontre o widget que está causando o erro.
  • Vá para o arquivo de layout onde o widget está declarado.
  • Verifique todos os recursos (drawables etc.) usados ​​naquele arquivo.
  • Em seguida, certifique-se de que o recurso está presente em todas as versões de drawables (drawable-v21, drawable etc.)

Felicidades!!

Prashant Paliwal
fonte
5

Como Parag Naik menciona corretamente (e Lạng Hoàng expande), o problema surge ao definir textColorPrimary para algo diferente de uma lista de estados de cores. Portanto, você pode definir textColorPrimary como uma lista de estados. Há um problema no rastreador de bug do Android sobre o colorPrimary ser uma lista de estados com apenas uma cor: https://code.google.com/p/android/issues/detail?id=172353

Portanto, para o seu tema em 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 o arquivo primary_color_statelist.xml real:

<?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>
Chris
fonte
5

No meu caso, tive o mesmo erro ao executar o aplicativo no dispositivo da versão API 19 do kitkat. Eu descobri o problema; Eu tinha alguns recursos de drawable que estavam no diretório drawable-v21 (que é usado para versões do API 21 Lollipop). Acabei de colocar os mesmos recursos na pasta "Drawable" para funcionar com a versão abaixo da API 21. Funciona. Você pode colocá-lo no diretório correspondente

Jack
fonte
4

Para mim, encontrei esse erro muitas vezes,

Erro ao inflar a classe android.support.design.widget.NavigationView # 28 e # 29

A solução que funciona para mim é que você deve combinar sua biblioteca de design de suporte e sua biblioteca appcompat de suporte.

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

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

Para mim, eles devem corresponder. :) Funciona para mim!

RoCk RoCk
fonte
3

Só para quem ainda chega a esse problema. Eu tenho o mesmo problema, mas todas as soluções aqui não funcionam para mim.

Basta dar uma olhada na classe NavigationView com a sugestão do logcat, descobri que o problema vem desta linha de código:

itemTextColor = this.createDefaultColorStateList(16842806);

Portanto, parece relacionado a itemTextColor como Aenur56 mencionou. Tentei a solução do Aenur56, mas não funcionou.

Dê uma olhada na linha de código acima, noto que existe ColorStateList. Então, eu crio um e configurei para itemTextColor e funcione.

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

Espero que ajude!

Lạng Hoàng
fonte
3

Nenhuma das soluções acima me ajudou. Eu encontrei isso em alguma outra página da web e funcionou para mim - "Em project.properties of design library, defina a meta para 21 ou mais disponível, limpe a biblioteca de design, appcomapt e seu projeto e aproveite"

Espero que ajude!

Michał Stawski
fonte
Onde está project.properties da biblioteca de design?
8oh8 de
2

Certifique-se de que seus drawables para o menu estão na pasta correta, o meu foi colocado em drawablev21, portanto, isso causou um nullpointer para o recurso.

Corrigido o problema de mover meus ícones para a pasta drawables

Ismael Ozil
fonte
1

Tive o mesmo problema depois de atualizar a biblioteca de suporte e nenhuma das respostas funcionou para mim. Finalmente resolvi baixar a versão mais recente das ferramentas de construção e atualizar no build.gradle parabuildToolsVersion "23.0.1"

Erick
fonte
1

Uma coisa a verificar é se você aplicou o tema corretamente no arquivo AndroidManifest.xml. No meu caso, omiti o atributo android: theme . Por exemplo:

<application ... android:theme="@style/Your.Theme.Here" ... >
David Conlisk
fonte
1

MELHOR FUI ATUALIZADO com.android.support:appcompat-v7:23.1.0

como @Ton disse downgradecompile 'com.android.support:design:23.1.0'

MAS, por que não atualizar com.android.support:appcompat-v7:23.1.1

A atualização final funcionou para mim, aproveite

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

Então, por que usar uma biblioteca mais antiga. Acho que agora é melhor usar o design e compacto atualizado.

karan
fonte
1
Eu atualizo o meu, como o que @karan escreveu, e funciona para mim.
Alexiscanny
1

Eu também estava tendo esse mesmo problema, depois de olhar quase 3 horas descobri que o problema estava no meu arquivo drawable_menu.xml, ele estava escrito incorretamente: D

Antarix
fonte
1

Este erro pode ser causado pelos motivos mencionados abaixo.

  1. Esse problema provavelmente ocorrerá quando a versão de sua biblioteca appcompat e biblioteca de suporte de design não corresponderem. Exemplo de condição de correspondência

     compile 'com.android.support:appcompat-v7:24.2.0' // appcompat library
    
     compile 'com.android.support:design:24.2.0' //design support library
  2. Se o seu arquivo de tema em estilos tiver apenas esses dois,

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

em seguida, adicione ColorAccent também. Deve ser parecido com isso.

 <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>
Vishal Puri
fonte
eu editei. Significa adicionar ColorAccent também se não estiver presente.
Vishal Puri
1

Maneira genérica de resolver problemas como Error inflating class X:

  1. verifique o rastreamento de pilha de causa e deve haver Resources$NotFoundExceptionassim:
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 é na verdade um inteiro exato do arquivo R.java gerado.
  2. Encontre 0x7f0b0066qual apontará para o arquivo xml que não pôde ser inflado (encontrado).
  3. Na maioria dos casos, isso layoutocorre porque o diretório não tem esse recurso, mas algunslayout-XXX têm.
  4. E a solução é colocar recursos em todos os diretórios necessários. Ou pelo menos em layout.
onze
fonte
1

É estranho, mas o projeto limpo e o projeto de reconstrução funcionaram para mim.

miserável
fonte
1

No meu caso eu tive

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

e na configuração do aplicativo:

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

Então, mudei o XML para:

com.google.android.material.navigation.NavigationView...
Mihai
fonte
isso está correto após a migração para o androidx, obrigado
Stark
0

Eu encontrei a solução ... se você usou app: srcCompat, mude para android: src essa solução funcionou para mim :)

Khun Htet Naing
fonte
0

Eu estava enfrentando esse erro no Xamarin. Isso ocorreu devido a alguns arquivos que estavam presentes na pasta drawable-v21 . Então, copiei esses arquivos (provavelmente arquivos de ícone) para a pasta drawable e o erro desapareceu.

Juned Khan Momin
fonte