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

我用的是Windows 7。

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


当前回答

这是我发现的又一个答案,之前的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文件。

这是我解决问题的方法。

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

其他回答

我的AndroidManifest.xml文件有一个问题,没有生成R.java。

我认为解决方案是检查所有的XML文件,到处都是!

我想强调糞_爺的答案。

我重命名了一个颜色从“listcolor”到“color_list”,但我没有抓住其他布局之一是引用它。所以(突然)我所有的R.string. x和R.layout. x在'R'上都失败了。

最后,我查看了控制台窗口并查看了错误。我认为它们都是R没有被发现的引用,但实际上,其中一个是'listcolor'没有被发现。一旦我修复了这个,其他错误就都消失了。

也许Eclipse插件的未来版本将允许您重命名这些XML文件中的资源,并将其传播到对它的所有引用中。

今天下午我第一次遇到这个问题。即使当我创建一个新项目时,也不会生成R.java。我改变了工作场所,一切都恢复正常了。

在我的例子中,R文件没有生成,因为我的res/文件夹中有同名的XML文件(例如,res/layout/filename.xml和res/values/filename.xml)。

在我更改了其中一个文件名后,我的R文件再次通过Build automatic选项生成。

我也有同样的问题,我最终发现了问题:在strings.xml中,我没有保留一行<string name="app_name">程序名</string>,这是在创建一个新的Android项目时默认存在的。我以为它只用于程序HelloWord,这是原来的程序。

然而,AndroidManifest.xml引用这个值,因此:

编译错误; =>没有更新R.java; => ID不被识别…