Kitkat错误膨胀类android.support.design.widget.NavigationView

时间:2018-04-15 00:05:58

标签: java android android-layout

我的代码设计有问题,我不知道如何解决它。

我的错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.**********/com.*********.activity_fragment.Fragment_1_Main}: android.view.InflateException: Binary XML file line #17: Error inflating class android.support.design.widget.NavigationView

我希望尽快解决这个问题,我非常感谢参与解决我的问题。

以下是我已经完成的尝试以及文件中的代码

堆栈跟踪

04-15 15:02:06.842 23657-23657/? W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x9ccfeb20)
04-15 15:02:06.842 23657-23657/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.************, PID: 23657
         java.lang.RuntimeException: Unable to start activity ComponentInfo{com.************/com.************.activity_fragment.Fragment_1_Main}: android.view.InflateException: Binary XML file line #17: Error inflating class android.support.design.widget.NavigationView
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)                                          
    at dalvik.system.NativeStart.main(Native Method)                                    
    Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class android.support.design.widget.NavigationView                                       
    at android.view.LayoutInflater.createView(LayoutInflater.java:621)                                       
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)                                       
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:756)                                       
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)                                       
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)                                       
    at android.view.LayoutInflater.inflate(LayoutInflater.java:353)                                       
    at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249)                                       
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)                                       
    at com.************.activity_fragment.Fragment_1_Main.onCreate(Fragment_1_Main.java:100)                                       
    at android.app.Activity.performCreate(Activity.java:5231)                                       
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)                                       
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)                                      
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)                                        
    at android.app.ActivityThread.access$800(ActivityThread.java:135)                                        
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)                                        
    at android.os.Handler.dispatchMessage(Handler.java:102)                                       
    at android.os.Looper.loop(Looper.java:136)                                        
    at android.app.ActivityThread.main(ActivityThread.java:5017)                                        
    at java.lang.reflect.Method.invokeNative(Native Method)                                        
    at java.lang.reflect.Method.invoke(Method.java:515)                                        
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)                                        
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)                                        
    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:423)
    at android.view.LayoutInflater.createView(LayoutInflater.java:595)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)                                                        
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:756) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
    at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249) 
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) 
    at com.************.activity_fragment.Fragment_1_Main.onCreate(Fragment_1_Main.java:100) 
    at android.app.Activity.performCreate(Activity.java:5231) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
    at android.app.ActivityThread.access$800(ActivityThread.java:135) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
    at android.os.Handler.dispatchMessage(Handler.java:102)             
    at android.os.Looper.loop(Looper.java:136) 
    at android.app.ActivityThread.main(ActivityThread.java:5017) 
    at java.lang.reflect.Method.invokeNative(Native Method)                                                        
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)       
    at dalvik.system.NativeStart.main(Native Method) 
    Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x1/d=0x7f020043 a=2 r=0x7f020043}
    at android.content.res.Resources.loadDrawable(Resources.java:2073)
    at android.content.res.Resources.getDrawable(Resources.java:700)
    at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:353)
    at android.support.v7.internal.widget.TintManager.getDrawable(TintManager.java:145)
    at android.support.v7.internal.view.menu.MenuItemImpl.getIcon(MenuItemImpl.java:422)
    at android.support.design.internal.NavigationMenuPresenter$NavigationMenuAdapter.prepareMenuItems(NavigationMenuPresenter.java:383)
    at android.support.design.internal.NavigationMenuPresenter$NavigationMenuAdapter.<init>(NavigationMenuPresenter.java:255)
    at android.support.design.internal.NavigationMenuPresenter.getMenuView(NavigationMenuPresenter.java:97)
    at android.support.design.widget.NavigationView.<init>(NavigationView.java:149)
    at android.support.design.widget.NavigationView.<init>(NavigationView.java:88)
    at java.lang.reflect.Constructor.constructNative(Native Method) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at android.view.LayoutInflater.createView(LayoutInflater.java:595) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:756)                                                  
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)                                            
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:353)                                                        
    at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249)                 
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)                                                        
    at com.************.activity_fragment.Fragment_1_Main.onCreate(Fragment_1_Main.java:100)                                                        
    at android.app.Activity.performCreate(Activity.java:5231)                                                        
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)                                                        
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
    at android.app.ActivityThread.access$800(ActivityThread.java:135) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:136) 
    at android.app.ActivityThread.main(ActivityThread.java:5017) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
    at dalvik.system.NativeStart.main(Native Method) 

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">

    <include
        layout="@layout/app_bar_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_main"
        app:menu="@menu/activity_main_drawer"/>
</android.support.v4.widget.DrawerLayout>

activity_main_drawer.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/nav_home"
        android:icon="@drawable/ic_islas"
        android:title="@string/menu_item1_islas"/>
    <item
        android:id="@+id/nav_favorite_noticias"
        android:icon="@drawable/ic_noticias"
        android:title="@string/menu_item1_noticias"/>
    <item
        android:id="@+id/nav_favorite_radios"
        android:icon="@drawable/ic_radiosfavoritas"
        android:title="@string/menu_item1_radio"/>

    <group android:title="@string/menu_item2_titulo">
       <item
            android:id="@+id/nav_share"
            android:icon="@drawable/ic_menu_share"
            android:title="@string/menu_item2_compartir"/>
       <item
            android:id="@+id/nav_stars"
            android:icon="@drawable/ic_star_black_24dp"
            android:title="@string/menu_item2_valorarAPP"/>
       <item
            android:id="@+id/nav_send"
            android:icon="@drawable/ic_menu_send"
            android:title="@string/menu_item2_soporte"/>
       <item
            android:id="@+id/nav_supervisor"
            android:icon="@drawable/ic_supervisor_account_black_24dp"
            android:title="@string/menu_item2_acerca"/>
     </group>
 </menu>

nav_header_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="@dimen/nav_header_height"
    xmlns:tools="http://schemas.android.com/tools"
    android:background="@drawable/wallpapermenu1"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:theme="@style/ThemeOverlay.AppCompat.Dark"
    android:orientation="vertical"
    android:gravity="bottom">

<ImageView
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:paddingTop="@dimen/nav_header_vertical_spacing"
        android:src="@drawable/canarypixel"
        tools:ignore="ContentDescription"
        android:id="@+id/imageView"
        android:layout_marginBottom="16dp"
        android:layout_above="@+id/textView" android:layout_alignParentEnd="true"/>

<TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="@dimen/nav_header_vertical_spacing"
        android:text="@string/canarypixel"
        android:textAppearance="@style/TextAppearance.AppCompat.Body1" android:id="@+id/textView3"
        android:textSize="10sp"
        android:layout_above="@+id/textView" android:layout_alignParentStart="true"
        android:textAlignment="textEnd"/>
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/canarypixel_gmail_com"
        android:id="@+id/textView" android:textSize="10sp"
        android:layout_alignParentBottom="true" android:layout_alignParentStart="true"
        android:textAlignment="textEnd" android:layout_alignParentEnd="true"/>
</RelativeLayout>

的build.gradle

apply plugin: 'com.android.application'

android {
compileSdkVersion 22
buildToolsVersion "25.0.0"
defaultConfig {
    applicationId "com.***********"
    minSdkVersion 17
    targetSdkVersion 22
    versionCode 6
    versionName "1.3"
    testInstrumentationRunner 
"android.support.test.runner.AndroidJUnitRunner"
    vectorDrawables.useSupportLibrary = true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/'] 
} }
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', 
{
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.android.gms:play-services-ads:12.0.1'
compile 'com.android.support:design:22.2.1'
compile 'com.android.support:support-v4:22.2.1'
testCompile 'junit:junit:4.12'
}

1 个答案:

答案 0 :(得分:1)

您收到此错误的原因是:您只将图片放在drawable-21文件夹中,它只能用于API级别21而不能用于API 19。

您还需要确保这些图片在drawable文件夹中也可用,以便它可以在API 19上使用。