安卓:这是什么原因的选项菜单通货膨胀的错误?(Android: What could cause a

2019-10-22 05:28发布

我按下菜单按钮,并在添加菜单项时接收的充气误差onCreateOptionsMenu方法。 我已经包括下面的一些错误。

代码如下所示,如果我尝试它自身并没有像我作为一个整体活动的一部分工作。 我不认为这是可行的,在整个我这里的活动贴(我不知道该位可能会造成这个),所以如果有人之前已经经历过这个想知道?

public boolean onCreateOptionsMenu(Menu m) {
    Log.d(TAG, "Menu Create");
    this.menu = m;
    m.add(0, 0, 0, "HAZAH!");
    return true;
}

05-24 17:18:47.963: ERROR/AndroidRuntime(1658): android.view.InflateException: Binary XML file line #17: Error inflating class com.android.internal.view.menu.IconMenuItemView 05-24 17:18:47.963: ERROR/AndroidRuntime(1658): at android.view.LayoutInflater.createView(LayoutInflater.java:513) 05-24 17:18:47.963: ERROR/AndroidRuntime(1658): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565) 05-24 17:18:47.963: ERROR/AndroidRuntime(1658): at android.view.LayoutInflater.inflate(LayoutInflater.java:385)

05-24 17:18:47.963: ERROR/AndroidRuntime(1658): Caused by: java.lang.reflect.InvocationTargetException 05-24 17:18:47.963: ERROR/AndroidRuntime(1658): at com.android.internal.view.menu.IconMenuItemView.<init>(IconMenuItemView.java:86)

05-24 17:18:47.963: ERROR/AndroidRuntime(1658): Caused by: java.lang.reflect.InvocationTargetException 05-24 17:18:47.963: ERROR/AndroidRuntime(1658): at com.android.internal.view.menu.IconMenuItemView.<init>(IconMenuItemView.java:86)


如果我尝试按菜单使用调试器附加我看到它停在这里:

Suspended (exception InflateException)
ViewRoot.deliverKeyEventToViewHierarchy(KeyEvent, boolean) line: 2425   

谢谢。

Answer 1:

这是存在的,因为我曾分配一个主题含有以下行的活动:

<item name="android:text"></item>

我用这个来去除标题栏中的应用程序名称的文本。 我想这是不这样做的正确的方式! 幸运的是,这是近期更改我的应用程序之一,所以我可以跟踪它(最终)。



Answer 2:

不要使用0的菜单ID。 使用Menu.FIRST+1或东西。 我也将使用Menu.NONE你的另外两个0参数。

另外,不要返回true - return(super.onCreateOptionsMenu(Menu m))来代替。



Answer 3:

请参阅如何更改选项菜单的背景颜色? 如果你因为编程更改菜单的背景的这个异常。



文章来源: Android: What could cause an Options Menu inflation error?