如果我添加选项菜单,应用程序在旋转后崩溃

时间:2015-11-24 09:37:29

标签: android

我从#34;空活动"创建了应用程序Android Studio 1.4中的模板和添加的选项菜单。

资源:

<?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">
    <item
        android:id="@+id/action_foo"
        android:icon="@android:drawable/ic_media_previous"
        android:orderInCategory="100"
        android:title="@string/word_foo"
        app:showAsAction="ifRoom"
        />
    <item
        android:id="@+id/action_bar"
        android:icon="@android:drawable/ic_media_next"
        android:orderInCategory="101"
        android:title="@string/word_bar"
        app:showAsAction="ifRoom"
        />
    <item
        android:id="@+id/action_baz"
        android:icon="@android:drawable/ic_media_pause"
        android:orderInCategory="102"
        android:title="@string/word_baz"
        app:showAsAction="never"/>
</menu>

方法:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.my_menu, menu);
    return true;
}

更改后,定位应用程序崩溃。有什么问题?

Caused by: java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to android.support.v7.widget.Toolbar$SavedState

我在这里引用了答案class cast exception on orientation change (Android) 而且我认为这不是我的情况:我的布局绝对是空的。根本没有包含id的小部件。

1 个答案:

答案 0 :(得分:1)

我发现了问题。

我不是以英语为母语的人,我忘记了,来自barfoobar的{​​{1}}也具有共同的价值。在标识为baz的菜单项后,我创建了action_foo。它与SDK布局中的一些id冲突,正如我所假设的,对应于ActionBar。

因此解决方案是将action_bar中的ID更改为其他内容。