我发现我的R.java从来没有更新过,所以它不包含关于新资源的信息,所以我决定删除它,并认为Eclipse会生成一个新的资源。但这并没有发生,我现在没有R.java。我怎么能再生一个?
我用的是Windows 7。
其中一条评论是:“做项目->清洁是我遇到问题的原因。删除R.java…不管出于什么原因,插件没有重新生成文件。”
我发现我的R.java从来没有更新过,所以它不包含关于新资源的信息,所以我决定删除它,并认为Eclipse会生成一个新的资源。但这并没有发生,我现在没有R.java。我怎么能再生一个?
我用的是Windows 7。
其中一条评论是:“做项目->清洁是我遇到问题的原因。删除R.java…不管出于什么原因,插件没有重新生成文件。”
当前回答
对于这个问题,显然没有一个最终答案,但这里有另一个我还没有看到的答案:
我曾经让R.java在(尝试)团队同步后消失,并且在项目中存在冲突解决文件(即thing .xml.mine,thing .xml)。r35,等等)。删除它们/解决冲突再生R。
其他回答
当您认为一切正常,但似乎没有任何事情可以正常工作时,请逐个检查XML文件。错误就在那里。
如果您使用XML文件的GUI,一切似乎都没问题,但当您输入文本XML文件时,您会看到里面的混乱。Eclipse在这方面有点bug。
也要设置BuildAutomatically,这样在你修复了错误之后,你的R.java文件就会在生成的....中祝你好运! !
快速修复:
清单中的包名称需要与/src文件夹中的包名称相同,/gen文件夹中的包将自动复制。
详细的观察:
观察/gen文件夹中的包的名称。在我的例子中,它与/src文件夹中的不同。
清单中引用的包是/gen文件夹的包。
我尝试添加一个名为/src文件夹的包到/gen文件夹,看看会发生什么,但这并没有解决问题。然后,我删除了与/src文件夹的包名不相同的包名。这个名称与/src文件夹不对应的包在我删除它后立即被重新创建。
由于清单中的包引用对应于正在被无意义地重新创建的包,并且与/src文件夹中的包不对应,这提示将package = "oldPackage"重命名为package = "srcFolderPackage"。
在我的例子中,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不被识别…
确保你没有导入
android.R;