Android:什么可能导致选项菜单充气错误?

时间:2010-05-24 17:00:15

标签: android menu inflate options-menu

按下菜单按钮并在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)


如果我尝试按下附带调试器的Menu,我会看到它停在这里:

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

感谢。

3 个答案:

答案 0 :(得分:1)

这是因为我为Activity分配了一个主题,其中包含以下行:

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

我用它来删除标题栏中的应用名称文字。我想这不是正确的做法!幸运的是,这是我的应用程序最近的更改之一,所以我能够追踪它(最终)。

答案 1 :(得分:0)

请勿使用0作为菜单ID。使用Menu.FIRST+1或其他内容。我还会将Menu.NONE用于其他两个0参数。

此外,请勿返回true - return(super.onCreateOptionsMenu(Menu m))

答案 2 :(得分:0)

请参阅 How to change the background color of the options menu? 如果由于以编程方式更改菜单的背景而导致此异常。