Android NavigationView导致android.view.InflateException

时间:2015-06-30 09:28:12

标签: android android-5.0-lollipop navigation-drawer

我创建了一个应用程序并实现了主题设置功能(用户可以为应用程序控件选择不同的颜色,应用程序UI控制运行时的颜色更改)。当用户更改主题时,将重新创建活动(调用onCreate()方法)。 在onCreate函数的第一次调用中,一切正常,但是当用户尝试在运行时更改应用程序主题应用程序崩溃时,原因是android.support.design.widget.NavigationView。如果我删除NavigationView App不会崩溃。

LayoutFile

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.byt.store.activities.HomeActivity"
    xmlns:fab="http://schemas.android.com/apk/res-auto"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer_layout"
    android:elevation="7dp"
    android:background="@color/white"
    android:fitsSystemWindows="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <FrameLayout
        android:id="@+id/container_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="?attr/colorPrimaryDark"
        android:clickable="true">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">

                <android.support.v7.widget.RecyclerView
                    android:id="@+id/recyclerView"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="@color/white"
                    android:focusable="true"
                    android:clickable="true"
                    android:foreground="?android:attr/selectableItemBackground"
                    android:clipToPadding="false"/>
        </LinearLayout>

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

    <com.byt.store.util.CircularProgressView
        android:id="@+id/progress_view"
        android:layout_gravity="center"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:padding="0dp"
        app:cpv_thickness="4dp"
        app:cpv_indeterminate="true"
        app:cpv_animAutostart="false"/>

    <com.software.shell.fab.ActionButton
        android:id="@+id/fab_button"
        android:layout_width="@dimen/common_pad_50dp"
        android:layout_height="@dimen/common_pad_50dp"
        android:layout_gravity="bottom|right"
        android:layout_marginRight="@dimen/fab_margin"
        android:layout_marginBottom="@dimen/fab_margin"
        fab:type="DEFAULT"
        fab:button_color="?attr/colorPrimary"
        fab:button_colorPressed="?attr/colorPrimaryDark"
        fab:image="@drawable/pencil_128"
        fab:image_size="24dp"
        fab:shadow_color="#2A2A2A"
        fab:shadow_radius="4.0dp"
        fab:shadow_xOffset="2.5dp"
        fab:shadow_yOffset="2.0dp"
        fab:show_animation="@anim/fab_roll_from_down"
        fab:hide_animation="@anim/fab_roll_to_down" />
    </FrameLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start">

        <com.byt.store.util.drawer_expandable_list.ExpandableListView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/FloatingGroupExpandableListView"
            android:background="?attr/colorPrimary"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:choiceMode="singleChoice"
            android:clickable="true"
            android:drawSelectorOnTop="false"
            android:fastScrollEnabled="true"
            android:headerDividersEnabled="true"
            android:overScrollMode="never"
            android:footerDividersEnabled="false"
            android:divider="@null"
            android:dividerHeight="0dp"
            android:transcriptMode="disabled"
            android:transitionGroup="false"
            android:smoothScrollbar="false"/>
    </android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>

的logcat

06-30 06:52:21.278  21969-21969/com.byt.store E/AndroidRuntime﹕ FATAL EXCEPTION: main
        Process: com.byt.store, PID: 21969
        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.byt.store/com.byt.store.activities.HomeActivity}: android.view.InflateException: Binary XML file line #69: Error inflating class <unknown>
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2301)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2361)
                at android.app.ActivityThread.access$800(ActivityThread.java:147)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
                at android.os.Handler.dispatchMessage(Handler.java:102)
                at android.os.Looper.loop(Looper.java:135)
                at android.app.ActivityThread.main(ActivityThread.java:5232)
                at java.lang.reflect.Method.invoke(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:372)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
         Caused by: android.view.InflateException: Binary XML file line #69: Error inflating class <unknown>
                at android.view.LayoutInflater.createView(LayoutInflater.java:637)
                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:747)
                at android.view.LayoutInflater.rInflate(LayoutInflater.java:810)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:508)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:418)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
                at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249)
                at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)
                at com.byt.store.activities.HomeActivity.onCreate(HomeActivity.java:96)
                at android.app.Activity.performCreate(Activity.java:5984)
                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2254)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2361)
                at android.app.ActivityThread.access$800(ActivityThread.java:147)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
                at android.os.Handler.dispatchMessage(Handler.java:102)
                at android.os.Looper.loop(Looper.java:135)
                at android.app.ActivityThread.main(ActivityThread.java:5232)
                at java.lang.reflect.Method.invoke(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:372)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
         Caused by: java.lang.reflect.InvocationTargetException
                at java.lang.reflect.Constructor.newInstance(Native Method)
                at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
                at android.view.LayoutInflater.createView(LayoutInflater.java:611)
                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:747)
                at android.view.LayoutInflater.rInflate(LayoutInflater.java:810)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:508)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:418)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
                at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249)
                at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)
                at com.byt.store.activities.HomeActivity.onCreate(HomeActivity.java:96)
                at android.app.Activity.performCreate(Activity.java:5984)
                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2254)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2361)
                at android.app.ActivityThread.access$800(ActivityThread.java:147)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
                at android.os.Handler.dispatchMessage(Handler.java:102)
                at android.os.Looper.loop(Looper.java:135)
                at android.app.ActivityThread.main(ActivityThread.java:5232)
                at java.lang.reflect.Method.invoke(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:372)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
         Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x0
                at android.content.res.Resources.getValue(Resources.java:1240)
                at android.content.res.MiuiResources.getValue(MiuiResources.java:124)
                at android.content.res.Resources.getColorStateList(Resources.java:938)
                at android.support.design.widget.NavigationView.createDefaultColorStateList(NavigationView.java:338)
                at android.support.design.widget.NavigationView.<init>(NavigationView.java:124)
                at android.support.design.widget.NavigationView.<init>(NavigationView.java:88)
                at java.lang.reflect.Constructor.newInstance(Native Method)
                at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
                at android.view.LayoutInflater.createView(LayoutInflater.java:611)
                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:747)
                at android.view.LayoutInflater.rInflate(LayoutInflater.java:810)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:508)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:418)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
                at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249)
                at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)
                at com.byt.store.activities.HomeActivity.onCreate(HomeActivity.java:96)
                at android.app.Activity.performCreate(Activity.java:5984)
                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2254)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2361)
                at android.app.ActivityThread.access$800(ActivityThread.java:147)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
                at android.os.Handler.dispatchMessage(Handler.java:102)
                at android.os.Looper.loop(Looper.java:135)
                at android.app.ActivityThread.main(ActivityThread.java:5232)
                at java.lang.reflect.Method.invoke(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:372)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)

0 个答案:

没有答案