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

我用的是Windows 7。

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


当前回答

在XML文件中有一个错误,但是XML验证没有显示错误。这就是为什么需要首先检查XML文件的原因!

其他回答

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

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

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

我也有同样的问题。

检查Lint警告后,我看到警告资源R.string。App_name似乎未使用…,所以我删除了r.r string.app_name。

这个资源在AndroidManifest.xml中是必需的,尽管Lint警告我一个未使用的资源。我在清单中添加了“未使用的资源”,一切恢复正常。

我希望这能对某些人有所帮助。

通过更改文件项目来解决问题。属性:我添加了一个android-17目标。

快速修复:

清单中的包名称需要与/src文件夹中的包名称相同,/gen文件夹中的包将自动复制。

详细的观察:

观察/gen文件夹中的包的名称。在我的例子中,它与/src文件夹中的不同。

清单中引用的包是/gen文件夹的包。

我尝试添加一个名为/src文件夹的包到/gen文件夹,看看会发生什么,但这并没有解决问题。然后,我删除了与/src文件夹的包名不相同的包名。这个名称与/src文件夹不对应的包在我删除它后立即被重新创建。

由于清单中的包引用对应于正在被无意义地重新创建的包,并且与/src文件夹中的包不对应,这提示将package = "oldPackage"重命名为package = "srcFolderPackage"。

如果你的AndroidManifest.xml文件引用了你存储在Strings .xml中的字符串常量,并且你在Strings .xml中重命名了这些字符串,你将需要在清单中更改它们,以使构建的一切都符合要求。

同样的情况也适用于任何引用您所更改的常量的布局.xml文件。不幸的是,Eclipse中的Markers视图和Problems视图都不会告诉您需要到哪里去修复这些问题——只是它们无法找到R.java。正如在其他答案中提到的,查看控制台,看看需要在哪里修复常量引用,然后再次清理项目。