Java can';无法在android 4.1上获取menuitem,它会崩溃

Java can';无法在android 4.1上获取menuitem,它会崩溃,java,android,drawable,Java,Android,Drawable,我有代码,可以获取菜单项并更改图标颜色。在安卓8.1上运行良好,但当我在安卓4.1.1上测试时,应用程序崩溃 Drawable drawable = menuos.getItem(1).getIcon(); if(drawable != null) { drawable.mutate(); drawable.setColorFilter(Color.BLACK,

我有代码,可以获取菜单项并更改图标颜色。在安卓8.1上运行良好,但当我在安卓4.1.1上测试时,应用程序崩溃

Drawable drawable = menuos.getItem(1).getIcon();
                    if(drawable != null) {
                        drawable.mutate();
                        drawable.setColorFilter(Color.BLACK, PorterDuff.Mode.SRC_ATOP);
                    }
梅努奥斯:

Menu menuos = menu
它位于OnCreateOptions菜单中

日志:

07-28 11:20:15.794 3443-3443/com.developerfromjokela.edison E/AndroidRuntime: FATAL EXCEPTION: main
    java.lang.NullPointerException
        at com.developerfromjokela.edison.MainActivity$5.onPageStarted(MainActivity.java:223)
        at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:318)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4745)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
        at dalvik.system.NativeStart.main(Native Method)
OnCreateOptions菜单:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    menuos = menu;

    return super.onCreateOptionsMenu(menu);

}

如果这是抛出NPE的行:

Drawable drawable = menuos.getItem(1).getIcon();
然后有两个选项:
menuos
为空或
menuos.getItem(1)
为空

因此,请在上述行之前执行此操作:

Log.i("menuos_isnull", menuos == null);
if (menuos != null) {
    Log.i("Item1_isnull", menuos.getItem(1) == null);
}
看看印的是什么。
这是调试,您必须更频繁地使用它。

您应该查看logcat中的所有运行时错误。你也可以在这里添加日志,让访问者了解问题所在。现在问题就在这里,你知道是什么导致了崩溃吗?@RM_HTMLKoodaaja需要完整的代码oncreateoptions菜单来检查视图是否初始化。现在的问题是,你在代码中的某一行上获得了NPE。先开始看yourself@Killer第223行转到Drawable Drawable=menuos.getItem(1.getIcon();Menuos是空的,但在android 8.1上它不是空的。如果是这种情况,那么可能是一个bug。在API 17中测试它,如果没有问题,那么你就得到了你的min-sdkI,我会试试,让你知道结果如何。首先,我将在5.1上试用它