我发现我的R.java从来没有更新过,所以它不包含关于新资源的信息,所以我决定删除它,并认为Eclipse会生成一个新的资源。但这并没有发生,我现在没有R.java。我怎么能再生一个?
我用的是Windows 7。
其中一条评论是:“做项目->清洁是我遇到问题的原因。删除R.java…不管出于什么原因,插件没有重新生成文件。”
我发现我的R.java从来没有更新过,所以它不包含关于新资源的信息,所以我决定删除它,并认为Eclipse会生成一个新的资源。但这并没有发生,我现在没有R.java。我怎么能再生一个?
我用的是Windows 7。
其中一条评论是:“做项目->清洁是我遇到问题的原因。删除R.java…不管出于什么原因,插件没有重新生成文件。”
当前回答
当我试图从SDK源代码构建Support4Demos时,这个问题也发生在我身上。
在修复了资源文件中的一些问题(例如,“fill_parent”重命名为“match_parent”)后,我发现问题在清单文件中:我通过试错检查了“在AndroidManifest.xml中定义一个<应用>标签”复选框,保存了更改,R.java神奇地重新出现。然后,我重新选中了该框,保存了该文件,重新生成了R.java。
我想我遇到了Eclipse的一个缺点。
其他回答
我没有看到它列在这里,但我遇到了我的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文件更改回来。
Android开发者提示:再生R.java。
我没有继续发现在野外发现的所有可以想象的问题,而是决定利用经过验证的方法盯着代码。这样做了一段时间后,我在res文件夹下发现了几个红色的家伙。它们是我当前重新设计工作的剩余部分,我打算在事情出错之前删除它们。果然,当我在它们上点击Del时,该死的R东西自动神奇地重新出现。
一句话:从项目中删除所有不需要的文件,从清单文件中删除不需要的代码。
如果全部回答不通过,可以从命令行执行资源生成: 进入Eclipse项目目录。 然后运行
aapt.exe package -f -v -m -S res -J src -M AndroidManifest.xml -I ANDROID_HOME/platforms/android-XXX/android.jar
只需用适当的值更改ANDROIRD_HOME和XXX。 您应该在屏幕上获得错误所在的信息。
在我的例子中,R文件没有生成,因为我的res/文件夹中有同名的XML文件(例如,res/layout/filename.xml和res/values/filename.xml)。
在我更改了其中一个文件名后,我的R文件再次通过Build automatic选项生成。
以下是对我有效而其他答案无效的答案:
创建新的Android应用程序项目, 从旧目录复制所有文件和文件夹(除了/gen)并替换! 在包资源管理器中刷新项目根目录。 如果还在,再清理一下! 完成了。希望这能有所帮助。