我发现我的R.java从来没有更新过,所以它不包含关于新资源的信息,所以我决定删除它,并认为Eclipse会生成一个新的资源。但这并没有发生,我现在没有R.java。我怎么能再生一个?
我用的是Windows 7。
其中一条评论是:“做项目->清洁是我遇到问题的原因。删除R.java…不管出于什么原因,插件没有重新生成文件。”
我发现我的R.java从来没有更新过,所以它不包含关于新资源的信息,所以我决定删除它,并认为Eclipse会生成一个新的资源。但这并没有发生,我现在没有R.java。我怎么能再生一个?
我用的是Windows 7。
其中一条评论是:“做项目->清洁是我遇到问题的原因。删除R.java…不管出于什么原因,插件没有重新生成文件。”
当前回答
我也遇到了这个问题,不幸的是,这里的建议对我没有任何帮助。在尝试了很多事情之后,我终于发现了发生了什么,希望它能帮助到其他人。
昨天我用Android SDK管理器下载了很多新东西。之后,我更新了Android Eclipse插件。今天,在Eclipse“清理”之后,R文件消失并停止生成。
原因是,不知为何,可用sdk的列表(在首选项-> android下)是空的。在再次将其指向正确的目录后,它将重新加载并显示可用的sdk。当我关闭首选项并尝试另一个构建时,一切都恢复正常。
在附件的图片中,你可以看到已经填满的sdk列表。当问题发生时,它是空的。
希望这能对别人有所帮助!
其他回答
很明显,这个问题有很多原因。如果你在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未找到
在main.xml中使用硬编码文本作为按钮文本属性时,没有出现任何错误,只有三个警告。 就像这样:
<Button
android:id="@+id/scan"
.....
android:text="Scan" />
在将文本属性更改为android:text="@string/scan_device"后,立即生成了R.java。
因此,只要某个XML文件中出现任何错误/警告,它就会在我的机器/Eclipse上发生。
不过IntelliJ IDEA在警告方面没有这个问题。
几乎可以肯定插入到genfile中的内容有问题。Eclipse不够聪明,无法显示问题是什么,甚至无法指出存在问题!
考虑一下您对任何XML或图像内容所做的最后一次编辑-并尝试“回滚”您的更改,如果需要可以手动进行。
我发现Eclipse有时出于某种原因不喜欢我的文件名,我必须更改它们。
所以,一个接一个地增加资源,确保一切都“有效”。当出现问题时,只需尝试对其进行一些更改,直到Eclipse接受它。
当genfile出现时,你知道它正在工作-如果没有问题,它会自动这样做。
对于这个问题,显然没有一个最终答案,但这里有另一个我还没有看到的答案:
我曾经让R.java在(尝试)团队同步后消失,并且在项目中存在冲突解决文件(即thing .xml.mine,thing .xml)。r35,等等)。删除它们/解决冲突再生R。
同样会导致这种情况的是,如果你有一个scale9可绘制文件与另一个文件具有相同的名称:
img_file.9.png img_file.png
只需删除其中一个文件就可以修复它。