0

我似乎遇到了一个奇怪的问题,我找不到解决方案。

我完成了我的应用程序的工作并像往常一样关闭了模拟器和 Eclipse。他们第二天我启动了 eclipse 并运行了我的应用程序,当我尝试访问我的选项菜单时,它因通货膨胀错误而崩溃。

02-09 06:21:31.987: E/AndroidRuntime(15229): android.view.InflateException: Binary XML file line #17: Error inflating class com.android.internal.view.menu.IconMenuView

然后我发现它在尝试为上下文菜单充气时崩溃了。(select_dialog.xml 文件位于SDK 中的适当位置)。

02-09 06:22:49.207: E/AndroidRuntime(15239): android.content.res.Resources$NotFoundException: File res/layout/select_dialog.xml from xml type layout resource ID #0x109005e

选项菜单代码:

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    menu.clear();
    int tab = getTabHost().getCurrentTab();
    if (tab == 0) {
        menu.add(0, 0, 0, "Test1");
        menu.add(0, 1, 0, "Test2");
    } else if (tab == 1) {
        menu.add(0, 2, 0, "Test3");
        menu.add(0, 3, 0, "Test4");
    } else if (tab == 2) {
        menu.add(0, 4, 0, "Enter WPC");
        menu.add(0, 5, 0, "Clear All WPCs");
    } else if (tab == 3) {
        menu.add(0, 6, 0, "Edit Notes");
        menu.add(0, 7, 0, "Clear Notes");
    }
    return super.onCreateOptionsMenu(menu);
}

上下文菜单代码:

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    switch (v.getId()) {
    case R.id.list1: {
        menu.setHeaderTitle("Tool CC Menu");
        menu.add(0, v.getId(), 0, "Edit/Add Cutter Comp Info");
        menu.add(0, v.getId(), 0, "Clear Cutter Comp Info");
        break;
    }
    case R.id.list2: {
        menu.setHeaderTitle("WPC Menu");
        menu.add(0, v.getId(), 0, "Edit/Add WPC Info");
        menu.add(0, v.getId(), 0, "Clear WPC Info");
        break;
    }
    }
}

昨晚这两个菜单代码都运行良好......我尝试清理项目,然后我认为我的 SDK 可能已损坏,所以我尝试检查磁盘并且它运行良好,所以我重新安装了 SDK 并我仍然有问题。

我不知道接下来要看什么或尝试什么。任何指针表示赞赏。

4

3 回答 3

0

首先,您应该在项目中找到该文件。然后,在第 17 行找到问题所在。

于 2012-02-20T08:54:00.827 回答
0

对于那些关注这个的人,我发现了这个问题。似乎模拟器中的某些内容已损坏。

我删除了我正在使用的 AVD,重新创建它,现在一切都恢复正常了。

于 2012-02-20T16:39:45.177 回答
-1

我认为您的问题是您的 R.java 文件已损坏。这是一个生成的文件,您可以在 gen 文件夹中找到它。首先,您可以尝试删除它。运行项目时它将重新生成。或者我建议的是创建一个新项目并将旧类和 xml 复制粘贴到这个新项目中。肯定会奏效的。

于 2012-02-20T08:24:32.210 回答