Lỗi thổi phồng lớp android.support.design.widget.NavigationView


87

Tôi đã làm theo hướng dẫn về thành phần mới NavigationView trong Thư viện thiết kế hỗ trợ và không thể vượt qua thông báo lỗi này:

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

Tôi đã thử mọi cách giải quyết ở đây

Lỗi khi sử dụng bất kỳ Phần tử Thư viện Hỗ trợ Thiết kế Android nào

nhưng thông báo lỗi vẫn tồn tại.

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

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

Bất kỳ trợ giúp sẽ được đánh giá cao!

Chỉnh sửa - thêm @ menu / ngăn kéo & @ menu / ngăn_kết_chỉ & stacktrace

ngăn kéo.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>

draw_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 (chỉ một phần của chúng)

Nó đưa ra ba trường hợp ngoại lệ như bên dưới: tất cả đều chỉ ra rằng vấn đề là do dòng "setContentView (layout)" tại layout.xml gây ra.

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

Bạn cũng có thể đăng xml @layout/drawer_headervà xml @menu/drawer?
TheoK

Ngoài ra, hãy đăng toàn bộ dấu vết ngăn xếp.
CommonsWare

@TheoK Tôi đã chỉnh sửa câu hỏi của mình ~ cảm ơn
pptang

Chà, nó không thể tìm thấy một trong các tài nguyên của bạn. Tôi không biết cái nào, mặc dù.
CommonsWare

Tôi phải đối mặt với điều này bởi vì tôi đã cấu trúc lại một số mã. Về cơ bản, tôi đã cấu trúc lại một biến có tên là parentFragment để chính xác hơn và android studio cũng đã thực hiện thay đổi trong styles.xml. Phải sửa lại kiểu thành parent = “<w Anything-base-class>” và nó hoạt động trở lại.
Saifur Rahman Mohsin

Câu trả lời:


83

Trên thực tế, vấn đề không phải là primarycolortextnâng cấp hay hạ cấp các phần phụ thuộc. Sự cố này có thể xảy ra khi phiên bản appcompatthư viện của bạn và thư viện hỗ trợ thiết kế không khớp.

Ví dụ về điều kiện đối sánh

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

Bạn có thể giải thích cho tôi làm thế nào để phát hiện vấn đề này cho một newbie như tôi plz :)
Jerome2606

Nếu bạn luôn luôn khai báo một biến cho những thứ như thế này trong ứng dụng của bạn / build.gradle bạn ngăn mình khỏi quên thay đổi, như trong:def supportVersion = '25.1.0' compile "com.android.support:appcompat-v7:$supportVersion" compile "com.android.support:design:$supportVersion"
riper

3
cả hai thư viện do tôi sử dụng đều giống nhau nhưng vẫn gặp lỗi giống nhau. Kiểm tra biên dịch mã bên dưới 'com.android.support:appcompat-v7:23.4.0' biên dịch 'com.android.support:design:23.4.0'
Maya Mohite

1
Tôi nên sử dụng support of version 26. Tôi đang sử dụng 'com.android.support:appcompat-v7:26.1.0'. Có 26.1.0đúng không?
Nimmagadda Gowtham

Lỗi gặp phải trên Gradle 4.1 với compileSdkVersion 25 buildToolsVersion '26 .0.2 'và biên dịch' 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 'Đã giải quyết việc thực hiện các thay đổi dưới đây biên dịch' com.android.support:appcompat-v7:25.0.0 'biên dịch' com.android.support:design:25.0.0 'biên dịch' com.android .support: support-v4: 25.0.0 '
iambegineer

45

Tôi đã gặp lỗi tương tự. Khi tôi sử dụng

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

phù hợp với tôi khi tôi xóa các mục chủ đề android: textColorPrimary và 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>

Hãy thử làm việc với một chủ đề Ứng dụng rất đơn giản để bắt đầu.

BIÊN TẬP:

Đây hướng dẫn sẽ giúp. Tôi hiểu rằng việc sử dụng "android: textColorPrimary" yêu cầu cấp api tối thiểu 21. Sử dụng cùng một thẻ mà không có "android:" sử dụng thư viện hỗ trợ thiết kế. Bất kỳ tiện ích nào của thư viện hỗ trợ sẽ cố gắng tìm mục "textColorPrimary" thay vì "android: textColorPrimary" và nếu không tìm thấy tiện ích tương tự, nó sẽ gây ra lỗi đã đề cập ở trên.


Cảm ơn, Nó hoạt động như một sự quyến rũ !!!! nhưng bạn có biết tại sao chúng ta nên loại bỏ hai thuộc tính này không ??
pptang

4
Tôi chưa bao giờ có hai thuộc tính này và vẫn gặp lỗi tương tự. Có ý kiến ​​gì không?
Shubham Chaudhary

1
Đối với tôi nó vẫn thất bại ngay cả khi tôi thêm android: textColorPrimary trong các giá trị-v21 / styles.xml
David

1
Hãy xem xét câu trả lời mà Balman Rawat đưa ra dưới đây. Trong trường hợp của tôi, tôi đã phải áp dụng cả hai câu trả lời.
NewestStackOverflowUser

@Parag Naik Bạn đã cứu được tuần của tôi nhờ :) Tôi yêu cộng đồng này.
Yasin Kaçmaz

41

Tôi cũng có lỗi tương tự. Trong trường hợp của tôi, một số tài nguyên chỉ ở dạng drawable-v21. Sao chép các tài nguyên đó vào thư mục có thể vẽ được. Điều này đã giải quyết vấn đề cho tôi.

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

Đây là vấn đề chính.


2
Đúng vậy. Tương tự cho tôi. Có một tệp XML có thể vẽ được bằng cách sử dụng một vectortrong v21thư mục và không có gì tương ứng trong thư mục chuẩn <21. Cảm ơn.
eoinzy

1
Tại chỗ .. Tôi đã thêm các hình ảnh trong drawable-xx nhưng không thể drawable. Đó là vấn đề
Rahul Hawge

1
cảm ơn rất nhiều selector.xml của tôi và tệp xml khác cũng ở đó. Tôi sao chép nó và lưu vấn đề
MohammadL

27

Nếu bạn đã di chuyển sang androidx, bạn nên thay đổi bố cục xml từ

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

đến

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

15

Tôi đã gặp lỗi tương tự, tôi đã giải quyết nó bằng cách thêm app:itemTextColor="@color/a_color"vào chế độ xem điều hướng của mình:

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

Bạn vẫn có thể sử dụng android:textColorPrimaryandroid:textColorSecondarytrong chủ đề của mình với phương pháp này.


Tôi đã thử cách giải quyết khác của bạn từ đây , nhưng vẫn gặp thông báo lỗi tương tự. Cảm ơn sự giúp đỡ của bạn dù sao.
pptang

15

Vì vậy, tôi đã cố gắng sửa lỗi này. Và không có gì làm việc cho tôi. Tôi đã không thể tìm ra giải pháp. Tình huống:

Tôi chỉ định tạo Navigation Drawer Projectbên trong Android Studio 2.1.2 Và khi tôi cố gắng thay đổi biểu tượng Android mặc định trong đó, nav_header_main.xmltôi đã gặp một số lỗi kỳ lạ. Tôi phát hiện ra rằng tôi đã thả PNGlogo của mình vào ...\app\src\main\res\drawable-21. Khi tôi cố gắng đặt biểu tượng PNG của mình trong ...\app\src\main\res\drawablebam! Tất cả các lỗi kỳ lạ đều biến mất.

Sau đây là một số dấu vết ngăn xếp khi tôi đặt PNG vào drawable-21thư mục:

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:

Như bạn có thể thấy Stack Trace ở trên bao gồm:

android.support.design.widget.NavigationView.inflateHeaderView (NavigationView.java:262) tại android.support.design.widget.NavigationView. (NavigationView.java:173) tại android.support.design.widget.NavigationView. (NavigationView. java: 95)


1
Rất tốt, cảm ơn vì câu trả lời. Nó có vẻ như một câu trả lời đã bị tránh trong tất cả các bài viết khác. Tôi đang cố gắng tạo drawable-v21 và đặt tất cả ở đó trong khi tôi đã có thư mục có thể vẽ và chỉ cần đặt nó ở đó
lượng

11

Tôi đã giải quyết nó hạ cấp trong gradle từ

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

đến

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

Có vẻ như tôi luôn gặp sự cố khi cập nhật bất kỳ thành phần nào của Android Studio. Phát mệt với nó.


1
Thư viện hỗ trợ thiết kế hầu như không liên quan đến Android Studio.
Sotti

Tôi đã gặp vấn đề tương tự và tôi chỉ có thể giải quyết nó bằng cách Hạ cấp như @Ton đã đề cập. Thực sự không biết Thư viện hỗ trợ có liên quan như thế nào đến các bản cập nhật Nền tảng và Plugin Android Studio nhưng mỗi lần tôi cập nhật một số hoặc cập nhật khác không hoạt động với tôi. Tôi thực sự đề nghị câu trả lời này.
Saraschandraa

1
Thay vì hạ cấp, tôi đã nâng cấp Compact để phù hợp với 23.1.0. Tôi nghĩ rằng cách tốt nhất là sử dụng thư viện mới hơn câu trả lời của tôi ở trên stackoverflow.com/a/38141666/3172518
Karan

8

Không có bản sửa lỗi nào ở trên phù hợp với tôi.

Những gì làm việc cho tôi đã thay đổi

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

đến

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

Bạn rõ ràng cần thêm colorWhite vào màu sắc của mình. Xml


8

Làm theo các bước dưới đây chắc chắn sẽ loại bỏ lỗi này.

  • Tìm tiện ích con gây ra lỗi.
  • Chuyển đến tệp bố cục nơi công cụ đó được khai báo.
  • Kiểm tra tất cả các tài nguyên (có thể kéo, v.v.) được sử dụng trong tệp đó.
  • Sau đó, hãy đảm bảo rằng tài nguyên đó có trong tất cả các phiên bản có thể kéo được (drawable-v21, drawable, v.v.)

Chúc mừng !!


5

Như Parag Naik đã đề cập chính xác (và Lạng Hoàng mở rộng trên), vấn đề nảy sinh khi đặt textColorPrimary thành một thứ gì đó khác với danh sách trạng thái màu. Vì vậy, bạn có thể đặt textColorPrimary làm danh sách trạng thái. Đã xảy ra sự cố trong trình theo dõi lỗi android về colorPrimary là danh sách trạng thái chỉ có một màu: https://code.google.com/p/android/issues/detail?id=172353

Vì vậy, đối với chủ đề của bạn trong 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>

Và tệp chính_color_statelist.xml thực tế:

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

Trong trường hợp của tôi, tôi đã gặp lỗi tương tự khi chạy ứng dụng trong thiết bị phiên bản API 19 kitkat. Tôi đã tìm ra vấn đề; Tôi có một số tài nguyên có thể vẽ được trong thư mục drawable-v21 (Được sử dụng cho các phiên bản từ API 21 Lollipop). Tôi chỉ đặt cùng một tài nguyên trong thư mục "Drawable" để làm việc với phiên bản bên dưới API 21. Nó hoạt động. Bạn có thể đặt nó vào thư mục tương ứng


4

Đối với tôi, tôi đã gặp lỗi này nhiều lần,

Lỗi khi thổi phồng lớp android.support.design.widget.NavigationView # 28 và # 29

Giải pháp phù hợp với tôi là bạn phải khớp thư viện thiết kế hỗ trợ và thư viện máy tính ứng dụng hỗ trợ của bạn.

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

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

Đối với tôi chúng phải phù hợp. :) Nó hoạt động cho tôi!


3

Chỉ dành cho những người vẫn nhận được vấn đề này. Tôi gặp vấn đề tương tự nhưng tất cả các giải pháp ở đây không phù hợp với tôi.

Chỉ cần nhìn vào lớp NavigationView với gợi ý từ logcat, tôi thấy vấn đề xuất hiện ở dạng dòng mã này:

itemTextColor = this.createDefaultColorStateList(16842806);

Vì vậy, nó có vẻ liên quan đến itemTextColor như Aenur56 đã đề cập. Vì vậy, tôi đã thử với giải pháp của Aenur56 nhưng nó không hoạt động.

Hãy xem dòng mã ở trên, tôi nhận thấy rằng có ColorStateList. Vì vậy, tôi tạo một cái sau đó đặt cho itemTextColor thì nó hoạt động.

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

Hy vọng nó sẽ giúp!


3

Không có giải pháp nào ở trên giúp tôi. Tôi tìm thấy điều này trên một số trang web khác và nó phù hợp với tôi - "Trong project.properties của thư viện thiết kế, hãy đặt mục tiêu là 21 hoặc cao nhất có sẵn, sau đó thiết kế sạch lib, appcomapt và dự án của bạn và tận hưởng"

Hy vọng nó sẽ giúp ích!


Project.properties của thư viện thiết kế ở đâu?
8oh8

2

Đảm bảo rằng các tệp có thể kéo của bạn cho menu nằm trong đúng thư mục, của tôi nơi đặt trong drawablev21, do đó điều này gây ra một điểm nullpointer cho tài nguyên.

Đã sửa nó mua di chuyển các biểu tượng của tôi vào thư mục có thể kéo được


1

Tôi gặp vấn đề tương tự sau khi nâng cấp thư viện hỗ trợ và không có câu trả lời nào phù hợp với tôi. Cuối cùng, tôi đã giải quyết việc tải xuống phiên bản mới nhất của các công cụ xây dựng và nâng cấp trong build.gradle lênbuildToolsVersion "23.0.1"


1

Một điều cần kiểm tra kỹ là bạn đã áp dụng đúng chủ đề của mình trong tệp AndroidManifest.xml. Trong trường hợp của tôi, tôi đã bỏ qua thuộc tính android: theme . Ví dụ:

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

1

TỐT HƠN TÔI NÂNG CẤP com.android.support:appcompat-v7:23.1.0

như @Ton đã nói hạ cấpcompile 'com.android.support:design:23.1.0'

NHƯNG Tại sao không nâng cấp com.android.support:appcompat-v7:23.1.1

Bản nâng cấp cuối cùng làm việc cho tôi tận hưởng

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

Vậy tại sao phải sử dụng thư viện cũ hơn. Tôi nghĩ bây giờ tốt hơn là sử dụng cả thiết kế và nâng cấp nhỏ gọn.


1
Tôi nâng cấp cái của mình, giống như cách @karan đã viết, và nó phù hợp với tôi.
Alexiscanny

1

Tôi cũng gặp phải vấn đề tương tự, sau gần 3 giờ xem xét, tôi phát hiện ra rằng vấn đề là trong tệp drawable_menu.xml của tôi, nó đã được viết sai: D


1

Lỗi này có thể được gây ra do những lý do như đã đề cập bên dưới.

  1. Sự cố này có thể xảy ra khi phiên bản của thư viện appcompat và thư viện hỗ trợ thiết kế của bạn không khớp. Ví dụ về điều kiện đối sánh

     compile 'com.android.support:appcompat-v7:24.2.0' // appcompat library
    
     compile 'com.android.support:design:24.2.0' //design support library
    
  2. Nếu tệp chủ đề của bạn trong các kiểu chỉ có hai kiểu này,

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

sau đó thêm ColorAccent nữa. Nó sẽ giống như thế này.

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

tôi đã chỉnh sửa. Nó có nghĩa là thêm ColorAccent cũng nếu nó không có mặt.
Vishal Puri,

1

Cách chung để giải quyết các vấn đề như Error inflating class X:

  1. kiểm tra dấu vết ngăn xếp nguyên nhân và sẽ có Resources$NotFoundExceptionnhư sau:
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 thực sự là số nguyên chính xác từ tệp R.java được tạo.
  2. Tìm 0x7f0b0066cái nào sẽ trỏ đến tệp xml không thể bị thổi phồng (tìm thấy).
  3. Trong hầu hết các trường hợp, đó là vì thư mục layoutkhông có tài nguyên này, nhưng một số layout-XXXcó.
  4. Và giải pháp là đưa tài nguyên vào tất cả các thư mục cần thiết. Hoặc ít nhất là vào layout.

1

Đó là một dự án kỳ lạ nhưng dự án sạch sẽ và dự án xây dựng lại làm việc cho tôi.


1

Trong trường hợp của tôi, tôi đã có

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

và trong cấu hình ứng dụng:

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

Vì vậy, tôi đã thay đổi XML thành:

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

điều này đúng sau khi di chuyển sang androidx, cảm ơn
Stark

0

Tôi đã tìm thấy giải pháp ... nếu bạn sử dụng ứng dụng: srcCompat thay đổi thành android: src giải pháp này phù hợp với tôi :)


0

Tôi đã gặp phải lỗi này trong Xamarin. Điều này là do một số tệp có trong thư mục drawable-v21 . Vì vậy, tôi đã sao chép các tệp đó (có thể là tệp biểu tượng) vào thư mục có thể vẽ và lỗi đã biến mất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.