我发现我的R.java从来没有更新过,所以它不包含关于新资源的信息,所以我决定删除它,并认为Eclipse会生成一个新的资源。但这并没有发生,我现在没有R.java。我怎么能再生一个?

我用的是Windows 7。

其中一条评论是:“做项目->清洁是我遇到问题的原因。删除R.java…不管出于什么原因,插件没有重新生成文件。”


当前回答

我忘记在可声明样式的标记上设置name属性

<declare-styleable>
        <attr name="myView" format="reference"></attr>
</declare-styleable>

我用

<declare-styleable name="Theme">
        <attr name="myView" format="reference"></attr>
</declare-styleable>

我没有得到任何错误

其他回答

我也有同样的问题。当我检查它时,我发现布局下的XML资源的名称没有正确的命名约定。上面有一些大写字母。所以我重新命名,使所有字母小写,神奇的工作。

我忘记在可声明样式的标记上设置name属性

<declare-styleable>
        <attr name="myView" format="reference"></attr>
</declare-styleable>

我用

<declare-styleable name="Theme">
        <attr name="myView" format="reference"></attr>
</declare-styleable>

我没有得到任何错误

如果您的R.java没有生成,解决方案之一是删除名为“blabla.out.xml”的布局文件。

删除此文件后,尝试从project -> Clean菜单中清理项目。

在main.xml中使用硬编码文本作为按钮文本属性时,没有出现任何错误,只有三个警告。 就像这样:

<Button
    android:id="@+id/scan"
    .....
    android:text="Scan" />

在将文本属性更改为android:text="@string/scan_device"后,立即生成了R.java。

因此,只要某个XML文件中出现任何错误/警告,它就会在我的机器/Eclipse上发生。

不过IntelliJ IDEA在警告方面没有这个问题。

这是我发现的又一个答案,之前的30个答案都没用。

我在strings.xml文件中发现了我的问题,尽管它非常非常奇怪。 我把我的应用精简到最低限度,这是唯一发现的东西。我甚至可以把它复制到一个全新的空白应用程序上。

在strings.xml文件中,它编译(并生成R.java文件):

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Test_My_App</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
</resources>

然而,这不是:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello_world">Hello world</string>
<string name="app_name">My_App</string>
<string name="action_refresh">Refresh</string>
</resources>

有趣的是,几天前我删除了action_settings。从那以后,我已经清理了我的代码,再也没有出现过任何问题。今天,我在strings.xml文件中添加了额外的字符串,在清理代码后,车轮脱落了。 此外,如果我重新排列相同的3个字符串行,并清理代码,则不会重新生成R.java文件。

这是我解决问题的方法。

我希望它能帮助到一些人……