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

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

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.


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.


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

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.


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)


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.


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


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


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>

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


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!


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!


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!


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


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"


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

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.


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


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>

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.

1

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


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

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


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.