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

我用的是Windows 7。

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


当前回答

我没有看到它列在这里,但我遇到了我的R.java被删除的问题,不能自动重建。

我在处理switch语句和字符串时遇到了这种情况。Eclipse建议我将项目的遵从性更改为1.7,这立即破坏了项目(R.java),因为Android不能使用这种遵从性。

控制台:

[2013-03-12 17:26:33 - CrimeAtlas] Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.

我通过使用“修复项目属性”修复了这个错误,然后像建议的那样查看日志。我注释掉了文件中的XML,提到用线性布局临时替换它们。当它被修复,砰,它重新出现(如果“自动构建”是打开的)。然后,如果没有任何错误,我可以将XML文件更改回来。

其他回答

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

我也有同样的问题。结果发现,原因是我的一些资源的文件名中有大写字母。我知道这听起来很琐碎,但只是把它们都改成小字母,修复了它,重新检索了我的R.java文件。

希望这能有所帮助。

很明显,这个问题有很多原因。如果你在64位的linux机器上,你第一次设置ADT,你可能会遇到这个问题,R不能自动生成。检查控制台选项卡,你可能会看到类似的错误:

 'No such file or directory' while attempting to get adb version from '/home/patrick/code/android-sdks/platform-tools/adb'

如果是这种情况,你需要安装ia32-libs,使用如下代码:

 sudo apt-get install ia32-libs

详见:Android adb未找到

当您认为一切正常,但似乎没有任何事情可以正常工作时,请逐个检查XML文件。错误就在那里。

如果您使用XML文件的GUI,一切似乎都没问题,但当您输入文本XML文件时,您会看到里面的混乱。Eclipse在这方面有点bug。

也要设置BuildAutomatically,这样在你修复了错误之后,你的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文件。

这是我解决问题的方法。

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