Android – 如何重新生成R类?

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

我已经导入了一个项目到我的Eclipse IDE,但它给我一个错误,因为R文件不是自动生成的。

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

在另一个堆栈溢出问题中 ,有人回答说:你必须摆脱xml文件中的警告和错误(语法和链接)。 这加上干净/build立项目。

项目 – >清理,然后select生成项目的选项。

我发现这种情况发生在一个破碎的布局上,一切都炸了。 放松一下,当你第一次学习编程时忘记了一个分号就会产生一百个错误。 许多恐慌,按下所有的button,使事情变得更糟。

  • 确保R.链接的内容不被破坏。 如果中断,ADK可能无法重新生成R. 修复XML文件中的所有错误
  • 如果你以某种方式碰到东西,并在你的活动中创build了import android.R请将其删除
  • 运行项目 – >清理 。 这将删除并重新生成R和BuildConfig。
  • 确保Project – > Build Automatically被打勾。
  • 等待几秒钟,错误消失。
  • 如果不起作用,请删除/ gen /文件夹中的所有内容
  • 如果仍然不起作用,请尝试右键单击您的项目 – > Android工具 – >修复项目属性

如果R不能再生,该怎么办

这通常发生在你有一个破损的XML文件。

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

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

好的,我解决了它:

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

因为这个R级不能生成。

我有一个类似的问题,在添加了一些图标和布局文件后,没有重新生成R.java文件。 我尝试清理和重build,而且自从原来的R.java文件不存在之后,情况变得更糟了,而且还没有重新生成。 最终,我发现生成R.java的编译器一定有编译器错误,我们没有在控制台中显示这些错误。 幸运的是,我之前已经注意到了

  1. 如果一个.xml文件引用另一个不存在的文件,那么这是错误的
  2. 在文件名中有大写字母是错误的(为什么是禁止的,我爱骆驼的情况)。

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

要再次生成R文件:

  1. 在layout-> activity_main.xml中修改一些东西
  2. 保存文件
  3. 项目 – >清除…

只要删除位于gen目录中的R文件,然后尝试Project-> Clean。 然后再次构build您的应用程序

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

我的问题是在最Manifiest文件。 我删除了启动器图标,并没有引用Manifiest上的新的:)

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

为了重新生成R.class,你将不得不尝试多种技术。

  • 从你的Java源文件中删除任何R import R.androidimport R.android
  • 确保通过转到窗口 – >显示视图 – >问题来打开“问题”面板
  • 如果您在xml资源中确实有一些错误,则需要更正这些错误。 在我的情况下,我不得不改变我的ID属性,包括“+”标志如下: android:id="@+id/grp_txt"
  • 现在继续执行Project-> Clean
  • 最后做Project-> Close,Project-> Open

“+”号表示新的资源ID,并强制aapt工具在R.java类中创build一个新的资源整数。

如果您使用Intellij IDEA,则可以单击Build – Rebuild Project

如果你通过“项目清理”(不要这样做)在eclipse中意外地删除了你的R,右击你的Projectfile – >从本地历史恢复…

重新创build您的R

我的情况:

  • 破xml导致了R.中的bug(因为ä,ö,ü,id中的字母)
  • 干净的项目删除我的R.

我做了什么:

  • 从本地历史重新创buildR.
  • 检查我的类(如导入android.R)中错误的R导入并将其删除
  • 修复该XML文件,并将其内容保存在外部txt文件
  • 完全从我的项目中删除了XML。
  • 一次运行我的项目
  • 把这个固定的xml放回原处

和…

  • 吓坏了,像绿巨人一样没有理由地给了我的女朋友一个大大的拥抱。

我的问题是我的XML文件中的错误。 在Android通用XML编辑器或Android通用清单编辑器中并不总是会自动检测错误,所以请尝试使用常规文本编辑器。 例如,某个.java文件中的一些随机乱码已经被插入到我的manifest和strings.xml文件中。

右键单击任何XML文件(很可能在/ res文件夹或AndroidManifest.xml中),然后单击“打开方式”,然后select“文本编辑器”。 确保一切看起来不错,然后保存。 此外,请确保为您的项目启用“自动构build”。 我删除了我的R.java文件,并从头开始重build,所以不需要从本地历史logging中恢复。

尝试添加一个新的“Android XML文件”,例如/res/layout文件夹。 这可能会导致插件重新生成R类。

您可以修改/ res文件夹中的任何xml文件,甚至只需添加一个空格并保存即可重新生成。

我有同样的问题 – “R”缺失。 而这里给出的build议都没有帮助。 幸运的是,我find了原因 – 不知何故,Eclipse丢失了Project-Properties-target。 它没有设置。 到目前为止,我还不知道做了什么,但是让它恢复正常。 所以,注意力缺失R也可能意味着失踪的目标

我已经尝试了上面的所有解决scheme。 但不幸的是,这并没有解决我的问题。 只要我把一张新照片粘贴到我的可绘制文件夹,我的R.java就消失了。 阅读这个问题的答案后,我试图删除以前粘贴的图标(而build立自动启用),一切都很好。 希望这会帮助别人!

我有这个问题,我只是右键单击我的项目和生成项目的数据包。 R类即刻出现在包gen中。

如果其他人发现这个线程时谷歌search,就像我做的那样:

我有一段时间似乎是相同的问题,经过一番挖掘,我注意到R.java文件正确构build,但只有一个我的源文件被忽略。 这个特定文件的问题在于Eclipse“有帮助地”在顶部添加了以下行:

 import android.R; 

这有效地隐藏了项目R的东西。 只要删除它,一切都会好起来的…

您可以使用Eclipse的“从本地历史恢复”来恢复您的旧R文件,如果它已被删除。 之后,你可能会看到什么让Eclipsebuild立你的文件(我看过其他错误比以前真的有助于解决问题)。

可能是你可以去项目属性并selectAndroid选项,然后定义项目的目标。 一旦你为这个项目应用选定的目标API,它将自动生成R.java。

主要是一个无效的布局文件的问题。 打开“问题”视图,查找XML布局文件中的错误。 修复它们,R类将被重新创build。

在我的情况下,并没有真正的错误。 问题视图在xml布局中显示错误。 编辑器也显示了xml错误。 只需使用“ctrl-f”自动格式化器重新格式化xml,就可以修复“xml”错误,并重新创buildR类。

你可以从你的项目中删除R.java文件,它会重新生成,假设你已经自动启用了构build。 如果你没有自动启用构build,只需转到project-> build all

对我来说,这是一个string值资源没有被定义…我手动添加到Strings.xml后,R类自动重新生成!

从现有项目导入时,通常会发生此问题。 尝试从res文件夹中的所有.xml文件以及Manifest文件中修复所有错误。 这些错误很可能以“ match_parent ”参数显示,请将其更改为“ fill_parent ”。 当所有的错误都清楚了,R.java就会出现。

如果任何.xml文件没有错误。 尝试编辑任何XML文件(如删除一个字母,然后键入),然后保存该文件,这将导致生成R.java。

我有一个问题, findViewById(R.id.edit_text)但返回一个TextView不是一个EditText。 我认为问题是R.id类有错误的ID号,然后,我清理项目,那么它的工作正常。

在我的情况下,这是一个不正确的名称的XML文件,导致我的R文件不重build。 这没有显示在包资源pipe理器中,但它显示在LogCat中。 注意那里有关你的res文件的任何警告。 无论你多less次清理你的项目,R文件将不会重build,直到这些错误被照顾。