我发现我的R.java从来没有更新过,所以它不包含关于新资源的信息,所以我决定删除它,并认为Eclipse会生成一个新的资源。但这并没有发生,我现在没有R.java。我怎么能再生一个?
我用的是Windows 7。
其中一条评论是:“做项目->清洁是我遇到问题的原因。删除R.java…不管出于什么原因,插件没有重新生成文件。”
我发现我的R.java从来没有更新过,所以它不包含关于新资源的信息,所以我决定删除它,并认为Eclipse会生成一个新的资源。但这并没有发生,我现在没有R.java。我怎么能再生一个?
我用的是Windows 7。
其中一条评论是:“做项目->清洁是我遇到问题的原因。删除R.java…不管出于什么原因,插件没有重新生成文件。”
当前回答
对我来说,这个错误是由于我试图复制一个现有的res/菜单,而不是用向导创建一个。
其他回答
在我的例子中,R文件没有生成,因为我的res/文件夹中有同名的XML文件(例如,res/layout/filename.xml和res/values/filename.xml)。
在我更改了其中一个文件名后,我的R文件再次通过Build automatic选项生成。
我遇到过几次这样的问题。我发现,如果我没有通过应用程序的名称导入包R,例如,如果我的应用程序有包名称示例。然后我发现我必须导入example.test.R才能访问任何资源。
如果没有导入,那么返回的资源是默认资源,不包括我自己的资源。
也就是说,如果你发现你只是得到一个默认资源的列表,然后检查,以确保你导入application_package_name。R而不是android。
我想强调糞_爺的答案。
我重命名了一个颜色从“listcolor”到“color_list”,但我没有抓住其他布局之一是引用它。所以(突然)我所有的R.string. x和R.layout. x在'R'上都失败了。
最后,我查看了控制台窗口并查看了错误。我认为它们都是R没有被发现的引用,但实际上,其中一个是'listcolor'没有被发现。一旦我修复了这个,其他错误就都消失了。
也许Eclipse插件的未来版本将允许您重命名这些XML文件中的资源,并将其传播到对它的所有引用中。
同样会导致这种情况的是,如果你有一个scale9可绘制文件与另一个文件具有相同的名称:
img_file.9.png img_file.png
只需删除其中一个文件就可以修复它。
如果使用Maven,所有这些答案都不能工作。我的解决方案是
<genDirectory>${project.basedir}/gen</genDirectory>
到android-maven-plugin的配置部分。