android - API 15 上的 SupportAppCompat-v7 库中的 NullPointerException

标签 android nullpointerexception android-support-library

SupportAppCompat 库中引发 NullPointerException。这似乎只发生在 API 15 (IceCreamSandwich) 上运行的设备上。 API 版本从 16 到 22 都可以正常工作。

关于什么可能导致这次崩溃有什么想法吗?

感谢您的宝贵时间和可能的答案!

这是堆栈跟踪:

java.lang.NullPointerException
       at android.graphics.drawable.LayerDrawable$LayerState.(LayerDrawable.java:625)
       at android.graphics.drawable.LayerDrawable.createConstantState(LayerDrawable.java:107)
       at android.graphics.drawable.LayerDrawable.(LayerDrawable.java:99)
       at android.graphics.drawable.LayerDrawable$LayerState.newDrawable(LayerDrawable.java:655)
       at android.content.res.Resources.getCachedDrawable(Resources.java:2052)
       at android.content.res.Resources.loadDrawable(Resources.java:1943)
       at android.content.res.Resources.getDrawable(Resources.java:707)
       at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:321)
       at android.support.v7.internal.widget.TintManager.getDrawable(TintManager.java:126)
       at android.support.v7.internal.view.menu.MenuItemImpl.getIcon(MenuItemImpl.java:422)
       at android.support.v7.internal.view.menu.ActionMenuItemView.initialize(ActionMenuItemView.java:120)
       at android.support.v7.widget.ActionMenuPresenter.bindItemView(ActionMenuPresenter.java:184)
       at android.support.v7.internal.view.menu.BaseMenuPresenter.getItemView(BaseMenuPresenter.java:182)
       at android.support.v7.widget.ActionMenuPresenter.getItemView(ActionMenuPresenter.java:170)
       at android.support.v7.widget.ActionMenuPresenter.flagActionItems(ActionMenuPresenter.java:458)
       at android.support.v7.internal.view.menu.MenuBuilder.flagActionItems(MenuBuilder.java:1129)
       at android.support.v7.internal.view.menu.BaseMenuPresenter.updateMenuView(BaseMenuPresenter.java:91)
       at android.support.v7.widget.ActionMenuPresenter.updateMenuView(ActionMenuPresenter.java:207)
       at android.support.v7.internal.view.menu.MenuBuilder.dispatchPresenterUpdate(MenuBuilder.java:279)
       at android.support.v7.internal.view.menu.MenuBuilder.onItemsChanged(MenuBuilder.java:1021)
       at android.support.v7.internal.view.menu.MenuBuilder.startDispatchingItemsChanged(MenuBuilder.java:1044)
       at android.support.v7.internal.app.ToolbarActionBar.populateOptionsMenu(ToolbarActionBar.java:463)
       at android.support.v7.internal.app.ToolbarActionBar$1.run(ToolbarActionBar.java:68)
       at android.os.Handler.handleCallback(Handler.java:605)
       at android.os.Handler.dispatchMessage(Handler.java:92)
       at android.os.Looper.loop(Looper.java:137)
       at android.app.ActivityThread.main(ActivityThread.java:4517)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:511)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
       at dalvik.system.NativeStart.main(NativeStart.java)

最佳答案

在花费大量时间寻找答案后,我找到了问题的根源。

我在 MenuItem 中使用了 LayerDrawable,显然,LayerDrawable 在 API 15 上设置一次后就无法修改。修改它会导致崩溃。

如果有人遇到此问题,我希望这会对您有所帮助。

关于android - API 15 上的 SupportAppCompat-v7 库中的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30650159/

相关文章:

android - 如何使用 Mono for android 和 MonoDevelop on linux 设计和构建应用程序?

java - Java中如何将null转为false?

java - NoClassDefFoundError : android. support.v4.util.ContainerHelpers

android - CoordinatorLayout 替换 fragment

android - _COUNT 列的用途是什么?

java - 公共(public) onPostExecute 方法

java - 如何获取图像中每个像素的强度。我想计算图像中更高强度的像素

java - socket 未连接

java - 带有 NullPointerException 的简单 Java 音乐数据库

android-studio - 错误 : This project uses AndroidX dependencies, 但 'android.useAndroidX' 属性未启用。在 gradle.prop 中将此属性设置为 true