Android LayerDrawable中的异常

Android LayerDrawable中的异常,android,android-support-library,layerdrawable,Android,Android Support Library,Layerdrawable,我有一个安卓应用程序,使用安卓支持库版本23.2.1,一切正常。然而,我昨天将android支持库版本更新为25.2.0,并意识到一些用户(通过Fabric crashlytics)遇到了这个异常,但我无法重现它 以下是崩溃日志: Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics

我有一个安卓应用程序,使用安卓支持库版本
23.2.1
,一切正常。然而,我昨天将android支持库版本更新为
25.2.0
,并意识到一些用户(通过Fabric crashlytics)遇到了这个异常,但我无法重现它

以下是崩溃日志:

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)' on a null object reference
   at android.graphics.drawable.LayerDrawable$ChildDrawable.<init>(LayerDrawable.java:959)
   at android.graphics.drawable.LayerDrawable$LayerState.<init>(LayerDrawable.java:1007)
   at android.graphics.drawable.LayerDrawable.createConstantState(LayerDrawable.java:133)
   at android.graphics.drawable.LayerDrawable.<init>(LayerDrawable.java:126)
   at android.graphics.drawable.LayerDrawable$LayerState.newDrawable(LayerDrawable.java:1048)
   at android.content.res.Resources.getCachedDrawableLocked(Resources.java:2777)
   at android.content.res.Resources.getCachedDrawable(Resources.java:2745)
   at android.content.res.Resources.loadDrawable(Resources.java:2586)
   at android.content.res.Resources.getDrawable(Resources.java:900)
   at android.content.Context.getDrawable(Context.java:408)
   at android.support.v4.content.ContextCompatApi21.getDrawable(ContextCompatApi21.java:30)
   at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:372)
   at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:202)
   at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:190)
   at android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatResources.java:100)
   at android.support.v7.view.menu.MenuItemImpl.getIcon(MenuItemImpl.java:425)
   at android.support.v7.view.menu.ActionMenuItemView.initialize(ActionMenuItemView.java:129)
   at android.support.v7.widget.ActionMenuPresenter.bindItemView(ActionMenuPresenter.java:211)
   at android.support.v7.view.menu.BaseMenuPresenter.getItemView(BaseMenuPresenter.java:186)
   at android.support.v7.widget.ActionMenuPresenter.getItemView(ActionMenuPresenter.java:197)
   at android.support.v7.widget.ActionMenuPresenter.flagActionItems(ActionMenuPresenter.java:479)
   at android.support.v7.view.menu.MenuBuilder.flagActionItems(MenuBuilder.java:1160)
   at android.support.v7.view.menu.BaseMenuPresenter.updateMenuView(BaseMenuPresenter.java:95)
   at android.support.v7.widget.ActionMenuPresenter.updateMenuView(ActionMenuPresenter.java:234)
   at android.support.v7.view.menu.MenuBuilder.dispatchPresenterUpdate(MenuBuilder.java:292)
   at android.support.v7.view.menu.MenuBuilder.onItemsChanged(MenuBuilder.java:1047)
   at android.support.v7.view.menu.MenuBuilder.startDispatchingItemsChanged(MenuBuilder.java:1074)
   at android.support.v7.app.ToolbarActionBar.populateOptionsMenu(ToolbarActionBar.java:460)
   at android.support.v7.app.ToolbarActionBar$1.run(ToolbarActionBar.java:61)
   at android.os.Handler.handleCallback(Handler.java:815)
   at android.os.Handler.dispatchMessage(Handler.java:104)
   at android.os.Looper.loop(Looper.java:194)
   at android.app.ActivityThread.main(ActivityThread.java:5637)
   at java.lang.reflect.Method.invoke(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:372)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
致命异常:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.graphics.drawable.drawable android.graphics.drawable.drawable$ConstantState.newDrawable(android.content.res.Resources)”
位于android.graphics.drawable.LayerDrawable$ChildDrawable.(LayerDrawable.java:959)
位于android.graphics.drawable.LayerDrawable$LayerState.(LayerDrawable.java:1007)
位于android.graphics.drawable.LayerDrawable.createConstantState(LayerDrawable.java:133)
位于android.graphics.drawable.LayerDrawable.(LayerDrawable.java:126)
位于android.graphics.drawable.LayerDrawable$LayerState.newDrawable(LayerDrawable.java:1048)
位于android.content.res.Resources.getCacheDddrawableLocked(Resources.java:2777)
在android.content.res.Resources.getCachedDrawable上(Resources.java:2745)
位于android.content.res.Resources.loadDrawable(Resources.java:2586)
位于android.content.res.Resources.getDrawable(Resources.java:900)
位于android.content.Context.getDrawable(Context.java:408)
位于android.support.v4.content.ContextCompatApi21.getDrawable(ContextCompatApi21.java:30)
位于android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:372)
位于android.support.v7.widget.AppCompatidDrawableManager.getDrawable(AppCompatidDrawableManager.java:202)
位于android.support.v7.widget.AppCompatidDrawableManager.getDrawable(AppCompatidDrawableManager.java:190)
位于android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatResources.java:100)
在android.support.v7.view.menu.menuitemmpl.getIcon(menuitemmpl.java:425)中
在android.support.v7.view.menu.ActionMenuItemView.initialize(ActionMenuItemView.java:129)中
位于android.support.v7.widget.ActionMenuPresenter.bindItemView(ActionMenuPresenter.java:211)
位于android.support.v7.view.menu.BaseMenuPresenter.getItemView(BaseMenuPresenter.java:186)
位于android.support.v7.widget.ActionMenuPresenter.getItemView(ActionMenuPresenter.java:197)
位于android.support.v7.widget.ActionMenuPresenter.flagActionItems(ActionMenuPresenter.java:479)
位于android.support.v7.view.menu.MenuBuilder.flagActionItems(MenuBuilder.java:1160)
位于android.support.v7.view.menu.BaseMenuPresenter.updateMenuView(BaseMenuPresenter.java:95)
位于android.support.v7.widget.ActionMenuPresenter.updateMenuView(ActionMenuPresenter.java:234)
位于android.support.v7.view.menu.MenuBuilder.dispatchPresenterUpdate(MenuBuilder.java:292)
位于android.support.v7.view.menu.MenuBuilder.onitemchanged(MenuBuilder.java:1047)
在android.support.v7.view.menu.MenuBuilder.startDispatchingItemsChanged(MenuBuilder.java:1074)中
在android.support.v7.app.ToolbarActionBar.PopulateOptions菜单(ToolbarActionBar.java:460)中
位于android.support.v7.app.ToolbarActionBar$1.run(ToolbarActionBar.java:61)
位于android.os.Handler.handleCallback(Handler.java:815)
位于android.os.Handler.dispatchMessage(Handler.java:104)
位于android.os.Looper.loop(Looper.java:194)
位于android.app.ActivityThread.main(ActivityThread.java:5637)
位于java.lang.reflect.Method.invoke(Method.java)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:959)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
这似乎与菜单视图有关。菜单选项的布局为:

<?xml version="1.0" encoding="utf-8"?>
<menu 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"
    tools:context=".tablet.ui.navimenu.ContainerActivity">

    <item
        android:id="@+id/memo_fragment"
        android:icon="@drawable/ic_class_white_24dp"
        android:orderInCategory="100"
        android:title="@string/memo_fragment"
        app:showAsAction="always" />

    <item
        android:id="@+id/notification_fragment"
        android:icon="@drawable/layerlist_menu_notification"
        android:orderInCategory="200"
        android:title="@string/notification_fragment"
        app:showAsAction="always" />

</menu>

layerlist_菜单_通知布局是一个带有徽章的图标:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/ic_notification"
        android:drawable="@drawable/ic_notifications_white_24dp"
        android:gravity="center" />

    <!-- set a place holder Drawable so android:drawable isn't null -->
    <item
        android:id="@+id/ic_badge"
        android:drawable="@drawable/ic_notifications_white_24dp" />
</layer-list>


知道哪里出了问题吗

尝试在build.gradle中更改以下内容

 compileSdkVersion 25
buildToolsVersion "25.0.2"
compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:design:25.1.0'
compile 'com.android.support:support-v4:25.1.0'

你在使用vector drawables吗?@rafsanahmad007是的,我已经用我的布局代码更新了帖子,是的,我正在使用vector drawables。有没有解决相同问题的方法@Bryanlee在
25.2.0
中没有bug?