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

我用的是Windows 7。

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


当前回答

当我试图从SDK源代码构建Support4Demos时,这个问题也发生在我身上。

在修复了资源文件中的一些问题(例如,“fill_parent”重命名为“match_parent”)后,我发现问题在清单文件中:我通过试错检查了“在AndroidManifest.xml中定义一个<应用>标签”复选框,保存了更改,R.java神奇地重新出现。然后,我重新选中了该框,保存了该文件,重新生成了R.java。

我想我遇到了Eclipse的一个缺点。

其他回答

在Eclipse中,只需使用Project——> clean来清理项目。的 R.java将被自动(重新)创建。

如果由于某种原因,这不起作用:确保你的layout.xml文件不包含错误。Eclipse在这里似乎有点bug:有时它不会在XML或包资源管理器中标记错误。在这种情况下:在使用“clean”后查看“console”或“problems”视图。所有错误都应该显示在那里。修好它们,重新清理。

注意:没有必要修复因为缺少R文件而导致的错误!只需修复XML文件和其他项目错误,并使用清洁!

在阅读了许多帖子和YouTube视频后,我发现我们每个人都因为不同的原因丢失了R.java。

下面是我在Eclipse中修复这个问题的方法:

在gen文件夹中手动创建R.java并保存。 然后进入项目,点击“清洁”

将显示以下消息,您的文件将被自动重写:

手动修改了R.java !恢复到生成版本!

我发现了一个解决方案,为什么R.class不被Eclipse重新创建后- 2清洁,构建等。

问题在strings.xml中:

<string name="hello">Hello World, HelloAutoComplete!</string>

<string name="app_name">HelloAutoComplete</string>

这些是Eclipse在创建项目时默认创建的。

当然,您需要根据自己的需求更改strings.xml。有时你会清除字符串。xml这两行代码:

它在AndroidManifest.xml文件中产生了一个问题:

<application android:icon="@drawable/icon"  android:label="@string/app_name">
<activity android:name=".HelloAutoComplete" android:label="@string/app_name">

所以它不能与strings。xml通信。

还有另一种情况发生在我身上。当我在strings.xml资源文件中添加一个带有撇号的字符串时,就像

<string name="Today">Returns Today’s date</string>

它是通过将撇号改为另一种类型的撇号来修复的,比如´。

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

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

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