我发现我的R.java从来没有更新过,所以它不包含关于新资源的信息,所以我决定删除它,并认为Eclipse会生成一个新的资源。但这并没有发生,我现在没有R.java。我怎么能再生一个?
我用的是Windows 7。
其中一条评论是:“做项目->清洁是我遇到问题的原因。删除R.java…不管出于什么原因,插件没有重新生成文件。”
我发现我的R.java从来没有更新过,所以它不包含关于新资源的信息,所以我决定删除它,并认为Eclipse会生成一个新的资源。但这并没有发生,我现在没有R.java。我怎么能再生一个?
我用的是Windows 7。
其中一条评论是:“做项目->清洁是我遇到问题的原因。删除R.java…不管出于什么原因,插件没有重新生成文件。”
当前回答
我也有同样的问题。当我检查它时,我发现布局下的XML资源的名称没有正确的命名约定。上面有一些大写字母。所以我重新命名,使所有字母小写,神奇的工作。
其他回答
如果使用Maven,所有这些答案都不能工作。我的解决方案是
<genDirectory>${project.basedir}/gen</genDirectory>
到android-maven-plugin的配置部分。
作为Glaux的答案的概括,如果在res目录中有任何错误,那么R.java可能不会生成-即使您清理并重新构建。首先解决这些错误。
举个例子:当你添加一个图像文件,比如说“myimage-2.jpg”,系统会认为这是一个错误,因为文件名被限制为字母数字值。在添加任何文件后对“res”目录进行刷新,并观察控制台窗口中的输出是否有文件名警告。
我也有同样的问题。当我检查它时,我发现布局下的XML资源的名称没有正确的命名约定。上面有一些大写字母。所以我重新命名,使所有字母小写,神奇的工作。
首先,检查Console输出。 然后,检查xml布局文件名称是否只使用小写。 纠正xml错误。 检查项目属性-> Android不熟悉的东西
快速修复:
清单中的包名称需要与/src文件夹中的包名称相同,/gen文件夹中的包将自动复制。
详细的观察:
观察/gen文件夹中的包的名称。在我的例子中,它与/src文件夹中的不同。
清单中引用的包是/gen文件夹的包。
我尝试添加一个名为/src文件夹的包到/gen文件夹,看看会发生什么,但这并没有解决问题。然后,我删除了与/src文件夹的包名不相同的包名。这个名称与/src文件夹不对应的包在我删除它后立即被重新创建。
由于清单中的包引用对应于正在被无意义地重新创建的包,并且与/src文件夹中的包不对应,这提示将package = "oldPackage"重命名为package = "srcFolderPackage"。