1

当按下菜单按钮并在方法中添加菜单项时,我收到了充气错误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   

谢谢。

4

3 回答 3

1

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

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

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

于 2010-05-25T08:43:20.897 回答
0

不要0用于菜单 ID。使用Menu.FIRST+1什么的。我还将Menu.NONE用于您的其他两个0参数。

另外,不要返回true-return(super.onCreateOptionsMenu(Menu m))相反。

于 2010-05-24T18:13:11.003 回答
0

请参阅 如何更改选项菜单的背景颜色? 如果您因为以编程方式更改菜单的背景而出现此异常。

于 2011-04-13T11:12:29.657 回答