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

我用的是Windows 7。

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


当前回答

我也有同样的问题,我最终发现了问题:在strings.xml中,我没有保留一行<string name="app_name">程序名</string>,这是在创建一个新的Android项目时默认存在的。我以为它只用于程序HelloWord,这是原来的程序。

然而,AndroidManifest.xml引用这个值,因此:

编译错误; =>没有更新R.java; => ID不被识别…

其他回答

我也遇到了这个问题,不幸的是,这里的建议对我没有任何帮助。在尝试了很多事情之后,我终于发现了发生了什么,希望它能帮助到其他人。

昨天我用Android SDK管理器下载了很多新东西。之后,我更新了Android Eclipse插件。今天,在Eclipse“清理”之后,R文件消失并停止生成。

原因是,不知为何,可用sdk的列表(在首选项-> android下)是空的。在再次将其指向正确的目录后,它将重新加载并显示可用的sdk。当我关闭首选项并尝试另一个构建时,一切都恢复正常。

在附件的图片中,你可以看到已经填满的sdk列表。当问题发生时,它是空的。

希望这能对别人有所帮助!

如果使用Maven,所有这些答案都不能工作。我的解决方案是

<genDirectory>${project.basedir}/gen</genDirectory>

到android-maven-plugin的配置部分。

如果您的R.java没有生成,解决方案之一是删除名为“blabla.out.xml”的布局文件。

删除此文件后,尝试从project -> Clean菜单中清理项目。

我遇到过几次这样的问题。我发现,如果我没有通过应用程序的名称导入包R,例如,如果我的应用程序有包名称示例。然后我发现我必须导入example.test.R才能访问任何资源。

如果没有导入,那么返回的资源是默认资源,不包括我自己的资源。

也就是说,如果你发现你只是得到一个默认资源的列表,然后检查,以确保你导入application_package_name。R而不是android。

查看Eclipse中的Problems选项卡总是很有帮助的。在我的情况下,我得到了一个“android无法解决目标‘android-8’”的错误消息,使R.java无法生成。因此,我将导入的目标纠正为我在默认情况下使用的目标。属性文件,然后我执行了一个清洁通过项目->清洁,瞧!自动生成R.java !希望能有所帮助!