R.java文件删除自身

时间:2013-12-29 06:09:44

标签: java android eclipse

我有一个小问题。当我将项目添加到menu.xml文件时,gen文件夹中的R.java文件不会生成。我之前使用过相同的代码,没有出现任何问题。我在Windows 7上使用Eclipse和ADT插件。

这是menu.xml文件代码:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.andrewq.planets.MainActivity" >

    <item android:id="@+id/action_about"
        android:icon="@drawable/action_about"
        android:title="@string/action_about"
        android:orderInCategory="1"
        android:showAsAction="always"/>

    <item android:id="@+id/action_settings"
        android:title="@string/action_settings"
        android:orderInCategory="100"
        app:showAsAction="never" />

</menu>

以下是MainActivity.java中使用的代码:

//Method used to inflate the menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

//Method used to add items to the menu
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    super.onOptionsItemSelected(item);

    switch (item.getItemId()) {
        case R.id.action_about:
            aboutMenuItem();
            break;
        case R.id.action_settings:
            Intent intent = new Intent(getApplicationContext(), Settings.class);
            startActivity(intent);
            break;
    }

    return super.onOptionsItemSelected(item);
}

仅供参考 - 以下是一些清单信息:

<uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="19" />

编辑:当项目添加到menu.xml文件时似乎出现问题。如果我删除了这些项目,它只是说它找不到action_aboutaction_settings,而当项目存在时,R.java文件就会消失。

编辑#2:以下是代码设置的一些屏幕截图:

  

以下是XML代码的图片,其中注释了项目。

XML Items commented out

  

当项目被注释掉时,Java代码说它不能   找到action_settings或action_about:

Java code while commented out

  

最后,当项目被注释掉时输出错误:

errors while commented out



现在,如果我像这样拿出评论括号:

uncommented

出现以下错误,似乎无法解决:

uncommented errors


我希望这可以帮助别人解决我的问题。我以前从未遇到过这个问题。

谢谢,
安德鲁

4 个答案:

答案 0 :(得分:3)

我可以看到:

<item android:id="@+id/action_settings"
    android:title="@string/action_settings"
    android:orderInCategory="100"
    app:showAsAction="never" />

app:showAsAction 更改为 android:showAsAction 并检查。 希望它能解决这个问题。

已编辑(2013年12月30日): 你能不能在menu.xml中复制粘贴代码,看看它是否有效

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/action_about"
        android:icon="@drawable/action_about"
        android:orderInCategory="1"
        android:showAsAction="always"
        android:title="@string/action_about"/>
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_settings"/>
</menu>

该项目只有showAction的更改。 我有这个xml,它的工作正常。

答案 1 :(得分:3)

它不会自行删除,也不会为您所做的更改生成。因此,我建议您清理项目,重建项目,如果仍然显示问题,请转到控制台并检查问题。如果没有显示,请打开问题查看并检查它。肯定会出现一些错误。请查看错误日志。

编辑: 如果您使用的是API 11或更低版本,请在菜单中删除showAsAction =“never”,或者在清单文件中将min SDK版本设置为11。

答案 2 :(得分:0)

将上一个返回语句return super.onOptionsItemSelected(item);替换为

return true;或return false根据您的需要,因为该方法需要boolean返回语句。

答案 3 :(得分:0)

在ADT中进入“导航”(菜单) - &gt;偏好 - &gt; Android - &gt;构建 - &gt; Build Config:设置此项以将输出构建为“Normal”。完成此操作后,清理并重建项目。