Android - 如何重新生成R类?

zor*_*b76 76 android android-resources

可能重复:
在Eclipse中开发Android:R.java不生成

我已经将一个项目导入了我的Eclipse IDE,但由于R文件没有自动生成,所以它给了我一个错误.

如何编辑R文件以使其符合我的项目要求?

Gou*_*ite 47

另一个stackoverflow问题中,有人回答了这个问题:你必须摆脱xml文件中的警告和错误(语法和链接).这加上做了一个干净/构建项目.

项目 - >清理,然后选择构建项目的选项.

  • 警告:干净将很可能删除您的R CLASS.由于您无法在代码中找到对它的引用,因此它们将导致错误.因为你不能编译错误,所以不会生成新的R类! (10认同)
  • 你应该删除R类.您不必修复*all*错误,只需修复R链接的错误.例如,如果忘记关闭名为activity_page.xml(R.layout.activity_page)的布局中的标记,则R将不会重新生成. (2认同)

Muz*_*Muz 30

我发现这种情况发生在我身上,布局破碎,一切都爆炸了.放松一下,这就像你第一次学习编程时遗忘一个分号并产生一百个错误的错误.许多恐慌,按下所有按钮,让事情变得更糟.

  • 确保R.链接的任何内容都没有被破坏.如果它坏了,ADK可能无法重新生成R. 修复XML文件中的所有错误.
  • 如果你以某种方式击中某些东西并import android.R在你的活动中创建,请删除它.
  • 运行项目 - >清理.这将删除并重新生成R和BuildConfig.
  • 确保勾选项目 - >自动构建.
  • 等待几秒钟,以便错误消失.
  • 如果它不起作用,删除/ gen /文件夹中的所有内容
  • 如果仍然无效,请尝试右键单击项目 - > Android工具 - >修复项目属性.

如果R不再生,该怎么办

当您有一个损坏的xml文件时,通常会发生这种情况.

  • 检查XML文件中的错误,主要是在/ res /文件夹中
  • 常见的地方是/ layout /和/ values /,特别是如果你最近更改了其中一个
  • 检查AndroidManifest.xml,我发现经常更改字符串,忘记从AndroidManifest.xml更改字符串名称.
  • 如果找不到问题.右键单击/ gen/ - >从本地历史记录恢复... - >勾选R.java - >单击恢复.这并没有解决问题,但它会清除额外的错误,使问题更容易找到.

我知道这里已经有很多答案了,但这是Google上的第一个链接,所以我在这里编写了所有的建议并希望它可以帮助其他新人:)


zor*_*b76 15

好的,我修好了:

当我将清单更改为目标1.5版本时,出现了百万个错误,只有一个与R类的不存在无关 - 在清单文件属性中,"targetSdkVersion"和"maxSdkVersion"在sdk 1.5中不存在

因为这个R类无法生成.


小智 14

我有一个类似的问题,在我添加了一些图标和布局文件之后,R.java文件没有被重新生成.我尝试清理和重建,事情变得更糟,因为原来的R.java文件已经消失,但仍然没有重新生成.最终我突然意识到生成R.java的编译器必然存在编译器错误,而我们没有在控制台中显示那些错误.幸运的是,我之前已经注意到了

  1. 如果一个.xml文件引用另一个不存在的文件,则会出错
  2. 在你的文件名中包含大写字母是错误的(为什么这是禁止的,我喜欢驼峰的情况).

无论如何,在将我的图标和.xml文件重命名为全部小写,然后修复.xml文件中的所有引用之后,重新生成了瞧,R.java.当我停下来吃午饭时,及时感觉良好:-)


Muh*_*iri 8

要再次生成R文件:

  1. 修改layout-> activity_main.xml中的内容
  2. 保存文件
  3. 项目 - >清除...

只需删除位于gen目录中的R文件,然后尝试Project-> Clean.然后再次构建您的应用.


Eri*_*ass 7

你也可以右键单击project -> Android Tools -> Fix Project Properties.这应该导致重新生成R.java类.

  • 不,那不行. (4认同)

Cha*_*les 5

我重新打开 eclipse,编辑我的一个 xml 文件,然后发现我的活动类引用了 android.R 而不是我的包“R”:-)