クラスandroid.support.design.widget.NavigationViewの拡張中にエラーが発生しました


87

サポートデザインライブラリの新しいコンポーネントNavigationViewのチュートリアルに従いましたが、このエラーメッセージを確認できません。

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

ここですべての回避策を試しました

Androidデザインサポートライブラリ要素を使用するとエラーが発生します

しかし、エラーメッセージはまだ存在します。

xml

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true" >
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

    <include layout="@layout/toolbar" android:id="@+id/mainToolBar" />

    <fragment android:name="com.ais.cherry.fragment.LoginFragment"
        android:id="@+id/loginFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/mainToolBar" />
    <fragment     android:name="com.ais.cherry.fragment.WaterFallFragment"
        android:id="@+id/mainFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/mainToolBar" />
    <fragment android:name="com.ais.cherry.fragment.SearchFragment"
        android:id="@+id/searchFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/mainToolBar" />
    <fragment android:name="com.ais.cherry.fragment.ChatMainFragment"
        android:id="@+id/chatMainFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/mainToolBar" />
    <fragment android:name="com.ais.cherry.fragment.ProfileFragment"
        android:id="@+id/profileFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/mainToolBar" />


    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@android:color/white"
        app:itemTextColor="#212121"
        app:headerLayout="@layout/drawer_header"
        app:menu="@menu/drawer" />
</android.support.v4.widget.DrawerLayout>

build.gradle

buildscript {
    repositories {
        mavenCentral()
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
    applicationId "com.ais.cherry"
    minSdkVersion 16
    targetSdkVersion 22      
    multiDexEnabled true
    renderscriptTargetApi 22
    renderscriptSupportModeEnabled true

}
dependencies {
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.android.support:support-v4:22.2.0'
    compile 'com.android.support:design:22.2.0'
    compile 'com.android.support:recyclerview-v7:22.2.0'
}

プロジェクトbuild.gradle

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

styles.xml

<?xml version="1.0" encoding="utf-8"?>

<!-- Base application theme. -->
<style name="AppTheme" parent="AppTheme.Base">

</style>

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:windowActionModeOverlay">true</item>
    <item name="android:actionModeStyle">@style/AppTheme.ActionModeStyle</item>
    <item name="android:windowActionBar">false</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowNoTitle">true</item>
    <!-- Support library compatibility -->
    <item name="windowActionBarOverlay">true</item>

    <!-- ActionBar color -->
    <item name="colorPrimary">#E91E63</item>
    <!-- Status bar color -->
    <item name="colorPrimaryDark">#C2185B</item>
    <!-- Window color -->
    <item name="android:windowBackground">@color/white</item>
    <!-- ActionBar title text -->
    <item name="android:titleTextStyle">@style/AppTheme.MyActionBarTitleText</item>

    <item name="colorAccent">#9E9E9E</item>

    <item name="drawerArrowStyle">@style/AppTheme.MyDrawerArrowStyle</item>

    <!-- color for actionMenu-->
    <item name="actionMenuTextColor">#FFFFFF</item>
    <item name="android:actionMenuTextColor">#FFFFFF</item>
    <!-- android:textColorSecondary is the color of the menu
   overflow icon (three vertical dots) -->
    <item name="android:textColorPrimary">#212121</item>
    <item name="android:textColorSecondary">#FFFFFF</item>
    <!--Navigation bar color-->
    <item name="android:navigationBarColor">#E91E63</item>
    <!--Status bar color-->
    <item name="android:statusBarColor">#C2185B</item>
</style>

どんな助けでもいただければ幸いです!

編集-@ menu / drawer&@ menu / drawer_header&stacktraceを追加します

引き出し.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>

引き出し_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(それらの一部のみ)

以下のように3つの例外がスローされました。問題はlayout.xmlの「setContentView(layout)」の行が原因であることがすべて指摘されています。

java.lang.RuntimeException: Unable to start activity  ComponentInfo{com.ais.cherry/com.ais.cherry.activity.FirstActivity}:    android.view.InflateException: Binary XML file line #32: Error inflating    class android.support.design.widget.NavigationView

Caused by: android.view.InflateException: Binary XML file line #32: Error inflating class android.support.design.widget.NavigationView

Caused by: java.lang.reflect.InvocationTargetException

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

xml@layout/drawer_headerとxmlも投稿できます@menu/drawerか?
TheoK 2015年

また、スタックトレース全体を投稿してください。
CommonsWare 2015年

@TheoK私は私の質問を編集します〜ありがとう
pptang 2015年

まあ、それはあなたのリソースの1つを見つけることができません。でも、どちらかはわかりません。
CommonsWare 2015年

いくつかのコードをリファクタリングしたため、これに直面しました。基本的に、parentという変数をparentFragmentにリファクタリングしてより正確にし、androidstudioでstyles.xmlも変更しました。スタイルをparent =“ <whatever-base-class>”に戻す必要があり、再び機能しました。
Saifur Ra​​hman Mohsin 2017

回答:


83

実際にはprimarycolortext、依存関係をアップグレードまたはダウングレードすることは問題ではありません。この問題は、appcompatライブラリとデザインサポートライブラリのバージョンが一致しない場合に発生する可能性があります。

マッチング条件の例

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

私のような初心者のためにこの問題を検出する方法を教えてください
plz

あなたは常にあなたのアプリでこのようなことのための変数を宣言する場合は/あなたがのように、変化に忘れるから身を防ぐbuild.gradle:def supportVersion = '25.1.0' compile "com.android.support:appcompat-v7:$supportVersion" compile "com.android.support:design:$supportVersion"
riper

3
私が使用する両方のライブラリは同じですが、それでも同じエラーが発生します。以下のコードを確認してくださいコンパイル 'com.android.support:appcompat-v7:23.4.0'コンパイル 'com.android.support:design:23.4.0'
Maya Mohite 2017年

1
を使用する必要がありますsupport of version 26。私はを使用してい'com.android.support:appcompat-v7:26.1.0'ます。ある26.1.0正しいですか?
Nimmagadda Gowtham 2017

compileSdkVersion 25 buildToolsVersion'26.0.2 'およびコンパイル' com.android.support:appcompat-v7:23.0.0 'コンパイル' com.android.support:design:23.0.0 'コンパイル' com.androidを使用してGradle4.1でエラーが発生しました.support:support-v4:23.0.0 '以下の変更を行って解決しましたコンパイル' com.android.support:appcompat-v7:25.0.0 'コンパイル' com.android.support:design:25.0.0 'コンパイル' com.android .support:support-v4:25.0.0'
iambegineer18年

45

同様のエラーが発生しました。使うとき

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">

    <item name="colorPrimary">#673AB7</item>
    <item name="colorPrimaryDark">#512DA8</item>
    <item name="colorAccent">#00BCD4</item>
    <item name="android:textColorPrimary">#212121</item>
    <item name="android:textColorSecondary">#727272</item>

</style>

android:textColorPrimaryおよびandroid:textColorSecondaryテーマアイテムを削除すると機能します。

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">

    <item name="colorPrimary">#673AB7</item>
    <item name="colorPrimaryDark">#512DA8</item>
    <item name="colorAccent">#00BCD4</item>

</style>

最初に、非常に単純なアプリテーマを使用してみてください。

編集:

このチュートリアルが役立ちます。私の理解では、「android:textColorPrimary」を使用するには最小のAPIレベル21が必要です。「android:」なしで同じタグを使用すると、デザインサポートライブラリが使用されます。サポートライブラリウィジェットは、「android:textColorPrimary」ではなく「textColorPrimary」アイテムを見つけようとします。同じものが見つからない場合は、上記のエラーがスローされます。


おかげで、それは魅力のように機能します!!!! しかし、なぜこれら2つの属性を削除する必要があるのか​​知っていますか?
pptang 2015年

4
私はこれらの2つの属性を持っていませんでしたが、それでも同じエラーが発生します。何か案は?
Shubham Chaudhary 2015

1
私にとっては、values-v21 / styles.xmlにandroid:textColorPrimaryを追加しても失敗します
David

1
BalmanRawatが以下に示した回答を検討してください。私の場合、両方の答えを適用する必要がありました。
newestStackOverflowUser 2016年

@ParagNaikあなたは私の週を救ってくれましたありがとう:)私はこのコミュニティが大好きです。
ヤシンKaçmaz

41

私も同じエラーがありました。私の場合、一部のリソースはdrawable-v21のみでした。それらのリソースをドローアブルフォルダにもコピーします。これで問題は解決しました。

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

これが主な問題です。


2
うん。わたしも。使用して描画可能なXMLファイルがあったvector中でv21<21標準のフォルダに対応するフォルダと何も。ありがとう。
eoinzy 2016

1
スポットオン..drawable-xxで画像を追加しましたが、drawableでは追加しませんでした。それが問題でした
Rahul Hawge 2016年

1
どうもありがとう私のselector.xmlと他のxmlファイルもそこにありました。私はそれをコピーして問題を保存します
MohammadL

27

にすでに移行しているandroidx場合は、レイアウトxmlをから変更する必要があります

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

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

15

同じエラーが発生app:itemTextColor="@color/a_color"しました。ナビゲーションビューに追加して解決しました。

<android.support.design.widget.NavigationView
    android:id="@+id/navigation_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="left"
    app:headerLayout="@layout/layout_drawer_header"
    app:menu="@menu/drawer_menu"
    app:itemTextColor="@color/primary"/>

このメソッドを使用android:textColorPrimaryandroid:textColorSecondaryて、テーマでおよびを引き続き使用できます。


ここから回避策を試しましたが、同じエラーメッセージが表示されます。とにかくあなたの助けをありがとう。
pptang 2015年

15

だから私はこのエラーを修正しようとしていました。そして、誰も私のために働いていませんでした。私は解決策を見つけることができませんでした。 シナリオ:

Navigation Drawer ProjectAndroid Studio 2.1.2の内部を作成しようとしていたところ、でデフォルトのAndroidアイコンを変更しようとすると、nav_header_main.xml奇妙なエラーが発生していました。PNGロゴをにドロップしていることがわかりました...\app\src\main\res\drawable-21。PNGロゴを...\app\src\main\res\drawableバムに入れようとすると!奇妙なエラーはすべてなくなります。

以下は、PNGをdrawable-21フォルダーに配置したときのスタックトレースの一部です。

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

ご覧のとおり、上記のスタックトレースには次のものが含まれます。

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


1
とても良いです、答えてくれてありがとう。それは他のすべての投稿で避けられた一種の答えのようです。私はdrawable-v21を作成しようとしていて、そこにすべてを設定しましたが、すでにdrawableフォルダーがあり、そこに配置する必要がありました
quant 2018年

11

からgradleでダウングレードして解決しました

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

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

Android Studioのコンポーネントを更新すると、常に問題が発生するようです。飽きてきました。


1
デザインサポートライブラリは、AndroidStudioとはほとんど関係がありません。
ソッティ2015

私は同じ問題を抱えていましたが、@ Tonが述べたようにダウングレードすることによってのみ解決できました。サポートライブラリがAndroidStudioプラグインとプラットフォームの更新にどのように関連しているかは本当にわかりませんが、更新するたびに機能しません。私は本当にこの答えを提案します。
サラシャンドラ2016年

1
むしろダウングレードして、23.1.0に一致するようにCompactをアップグレードしました。私は上記の私の答えより新しいライブラリを使用するのが最善だと思いstackoverflow.com/a/38141666/3172518
カラン

8

上記の修正はどれも私にはうまくいきませんでした。

私のために働いたのは変化していました

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

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

あなたは明らかにcolorWhiteをcolors.xmlに追加する必要があります


8

以下の手順に従うと、このエラーは確実に削除されます。

  • エラーの原因となっているウィジェットを見つけます。
  • そのウィジェットが宣言されているレイアウトファイルに移動します。
  • そのファイルで使用されているすべてのリソース(ドローアブルなど)を確認してください。
  • 次に、すべてのバージョンのドローアブル(drawable-v21、drawableなど)にリソースがあることを確認します。

乾杯!!


5

Parag Naikが正しく言及しているように(そしてLạngHoàngが拡張しているように)、textColorPrimaryをカラー状態リスト以外に設定すると問題が発生します。したがって、textColorPrimaryを状態リストとして設定できます。androidバグトラッカーにcolorPrimaryが1色のみの状態リストであるという問題がありますhttps://code.google.com/p/android/issues/detail?id = 172353

したがって、styles.xmlのテーマの場合:

<style name="Base.Theme.Hopster" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>

    <item name="android:textColorPrimary">@color/primary_color_statelist</item>
</style>

そして実際のprimary_color_statelist.xmlファイル:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- This is used when the Navigation Item is checked -->
    <item android:color="@color/primary_text_selected" android:state_checked="true" />
    <!-- This is the default text color -->
    <item android:color="@color/primary_text" />
</selector>

5

私の場合、kitkat API19バージョンのデバイスでアプリを実行したときに同じエラーが発生しました。私は問題を理解しました。drawable-v21ディレクトリ(API 21 Lollipopのバージョンに使用される)にあるいくつかのドローアブルリソースがありました。API 21より前のバージョンで動作するように、同じリソースを「Drawable」フォルダーに配置しました。動作します。対応するディレクトリに置くことができます


4

私にとって、私はこのエラーに何度も遭遇しました、

クラスandroid.support.design.widget.NavigationView #28および#29の拡張エラー

私にとって有効な解決策は、サポートデザインライブラリとサポートappcompatライブラリを一致させる必要があるということです。

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

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

私にとって、それらは一致しなければなりません。:) わたしにはできる!


3

まだこの問題に直面している人のためだけに。私は同じ問題に直面しましたが、ここでのすべての解決策は私にとってうまくいきません。

logcatからのキューでNavigationViewクラスを見てください。このコード行から問題が発生していることがわかりました。

itemTextColor = this.createDefaultColorStateList(16842806);

したがって、Aenur56が述べたように、itemTextColorに関連しているようです。だから私はAenur56のソリューションを試してみましたが、うまくいきません。

上記のコード行を見てください。ColorStateListがあることに気付きました。だから私はそれを作成し、itemTextColorに設定してから動作します。

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

お役に立てば幸いです。


3

上記の解決策のどれも私を助けませんでした。私はこれを他のいくつかのウェブページで見つけました、そしてそれは私のために働きました-「デザインライブラリのproject.propertiesでターゲットを21または利用可能な最高に設定し、次にデザインライブラリ、appcomapt、そしてあなたのプロジェクトをきれいにして楽しんでください」

それが役立つことを願っています!


デザインライブラリのproject.propertiesはどこにありますか?
8oh8 2016年

2

メニューのドローアブルが正しいフォルダーにあることを確認してください。ドローアブルv21に配置されているため、リソースへのnullポインターが発生します。

アイコンをdrawablesフォルダーに移動して購入する問題を修正しました


1

サポートライブラリをアップグレードした後も同じ問題が発生しましたが、どの回答も機能しませんでした。最後に、最新バージョンのビルドツールをダウンロードし、build.gradleでアップグレードすることを解決しました。buildToolsVersion "23.0.1"


1

再確認する必要があるのは、AndroidManifest.xmlファイルでテーマが正しく適用されていることです。私の場合、android:theme属性を省略していました。例えば:

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

1

より良い私はアップグレードしました com.android.support:appcompat-v7:23.1.0

@Tonが言っダウングレードcompile 'com.android.support:design:23.1.0'

しかし、なぜアップグレードしないのですか com.android.support:appcompat-v7:23.1.1

最終的なアップグレードは私のために働いて楽しんだ

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

では、なぜ古いライブラリを使用するのか。デザインとコンパクトアップグレードの両方を使う方が良いと思います。


1
@karanが書いたように、私は自分のものをアップグレードします、そしてそれは私のために働きます。
Alexiscanny 2016

1

私も同じ問題を抱えていました。3時間近く調べたところ、問題がdrawable_menu.xmlファイルにあることがわかり、間違って書かれていました:D


1

このエラーは、以下の理由で発生する可能性があります。

  1. この問題は、appcompatライブラリとデザインサポートライブラリのバージョンが一致しない場合に発生する可能性があります。マッチング条件の例

     compile 'com.android.support:appcompat-v7:24.2.0' // appcompat library
    
     compile 'com.android.support:design:24.2.0' //design support library
    
  2. スタイルのテーマファイルにこれら2つしかない場合、

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

次に、ColorAccentも追加します。少しこんな感じになるはずです。

 <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">

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

 </style>

編集しました。ColorAccentが存在しない場合も追加することを意味します。
Vishal Puri

1

次のような問題を解決する一般的な方法Error inflating class X

  1. 原因スタックトレースを確認するとResources$NotFoundException、次のようになります。
Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f0b0066
    at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:190)
    at android.content.res.Resources.loadXmlResourceParser(Resources.java:2094)
    at android.content.res.Resources.getLayout(Resources.java:1111)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:424)
  1. Resource ID 実際には、生成されたR.javaファイルからの正確な整数です。
  2. 検索0x7f0b0066(発見)に膨張することができませんでしたxmlファイルを指すであろう。
  3. ほとんどの場合、これはディレクトリにlayoutこのリソースがないためですが、一部にlayout-XXXはあります。
  4. そして解決策は、必要なすべてのディレクトリにリソースを配置することです。または、少なくともにlayout

1

それは奇妙ですが、クリーンなプロジェクトと再構築プロジェクトは私のために働きました。


1

私の場合、私は持っていました

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

およびアプリ構成:

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

そこで、XMLを次のように変更しました。

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

これはandroidxへの移行後のおかげで正しいです
Stark

0

私は解決策を見つけました...あなたがapp:srcCompatをandroid:srcに変更した場合、この解決策は私のために働きました:)


0

Xamarinでこのエラーに直面していました。これは、drawable-v21フォルダーに存在するいくつかのファイルが原因でした。そこで、それらのファイル(おそらくアイコンファイル)をドローアブルフォルダにコピーすると、エラーはなくなりました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.