这次崩溃在LGE android 4中多次发生。
可以解决什么问题?
错误日志为:
Fatal Exception: java.lang.NoSuchFieldError: android.content.res.Configuration.keyboard
at android.support.v7.view.menu.MenuBuilder.setShortcutsVisibleInner(MenuBuilder.java:802)
at android.support.v7.view.menu.MenuBuilder.<init>(MenuBuilder.java:234)
at android.support.v7.app.AppCompatDelegateImplV9.initializePanelMenu(AppCompatDelegateImplV9.java:1279)
at android.support.v7.app.AppCompatDelegateImplV9.preparePanel(AppCompatDelegateImplV9.java:1343)
at android.support.v7.app.AppCompatDelegateImplV9.doInvalidatePanelMenu(AppCompatDelegateImplV9.java:1638)
at android.support.v7.app.AppCompatDelegateImplV9$1.run(AppCompatDelegateImplV9.java:134)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:153)
at android.app.ActivityThread.main(ActivityThread.java:5076)
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:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(NativeStart.java)
我在整个应用程序中只使用了一个菜单。 menu_web_page.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_refresh"
android:icon="@drawable/ic_refresh_white_24dp"
android:title="@string/action_refresh"
app:showAsAction="always" />
<item
android:id="@+id/action_share"
android:icon="@drawable/ic_share_white_24dp"
android:title="@string/action_share"
app:showAsAction="always" />
活动中的Java代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_web_page, menu);
return true;
}
我更新了菜单项可见性:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if (menu.findItem(R.id.action_refresh) != null) {
menu.findItem(R.id.action_refresh).setVisible(getIntent().getBooleanExtra(EXTRA_ENABLE_REFRESH, true));
}
if (menu.findItem(R.id.action_share) != null) {
menu.findItem(R.id.action_share).setVisible(getIntent().getBooleanExtra(EXTRA_ENABLE_SHARE, true));
}
return super.onPrepareOptionsMenu(menu);
}
我处理了菜单项选择事件:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
onBackPressed();
return true;
} else if (id == R.id.action_refresh) {
onRefreshClicked();
return true;
} else if (id == R.id.action_share) {
onShareClicked();
return true;
}
return super.onOptionsItemSelected(item);
}
我不明白究竟是什么问题?有人可以帮忙吗?