【问题标题】:No R class is generated没有生成 R 类
【发布时间】:2011-03-28 14:48:34
【问题描述】:

R 类的自动生成不再起作用。 我已经尝试过项目-> 清洁... 所有 xml 文件的警告也出现了:“没有检测到文档的语法约束(DTD 或 XML 模式)。”也许这就是代码生成停止的原因。 知道如何再次生成 R 类吗?

【问题讨论】:

  • 您是否尝试关闭清单文件并重新打开它?和 Eclipse 一样吗?您应该在 Eclipse 的错误日志中看到一个错误,或者如果它们是其中一个布局中的问题,则在 Android 控制台中看到一个错误。

标签: android eclipse


【解决方案1】:

除非/res/文件夹没有错误,否则不会生成R文件。

如果/res/文件夹中没有错误,请尝试删除gen文件夹,然后右键单击项目->android->修复android设置。

【讨论】:

  • 找不到菜单项:项目 -> android.只有项目 -> 属性 -> android,但这可能不是你的意思。
  • res 文件夹中唯一的内容是有关“无语法约束...”的警告,这是问题所在吗?不知道为什么突然出现这个警告,从一开始就没有?
  • 抱歉我的失误。 res文件夹中的错误。但我花了一段时间才意识到这一点。所有答案都是正确的,必须选择一个。当我右键单击所有 .xml 文件并选择验证时,警告“无语法约束...”消失了。
【解决方案2】:

正如其他帖子所说,/res 文件夹中不能有任何有错误的文件。如果是这样,则无法生成 R.class 文件。如果错误已修复,则应重新构建项目并生成 R.class。如果没有,我相信您可以右键单击该项目,然后单击 Android 工具 -> 修复项目属性。我认为这就是 @Macarse 的含义,项目 -> android -> 修复 android 设置。我没有看到这些选项,但 Android 工具 -> 修复项目属性通常对我有用,或者有时清理源代码也可以(右键单击项目 -> 源代码 -> 清理...)。

希望对你有所帮助。

:)

杰克

【讨论】:

  • 非常感谢。这为我解决了问题。
【解决方案3】:

通常,当您收到此类错误时,这意味着您的某个资源中存在错误。您是否在发生这种情况之前添加了可绘制对象、更改了布局或添加/修改了任何资源?
例如,如果你创建了一个 9-patch drawable,你不能在 drawable 文件夹中同时拥有 image.png 和 image.9.png,这会产生错误,并且 Eclipse 会发疯。同样的事情如果你在一个 xml 文件中犯了一个错误,并保存它。那么只要没有更正文件就无法生成R类。

【讨论】:

    【解决方案4】:

    在我的例子中,定义以斜杠结尾的 sdk 位置非常简单。问题是它没有找到 appt.exe,因为它在 ../sdkplatform-tools/aapt.exe 中而不是在 ../sdk/platform-tools/aapt.exe 中寻找它

    【讨论】:

      【解决方案5】:

      这是您的解决方案:

      打开终端窗口并输入

      sudo apt-get install ia32-libs

      即使您使用的是 64 位操作系统,这也会再次帮助您。它对我来说非常有效。

      【讨论】:

      • 你还要解释一下,什么是ia32-libs?为什么会有帮助?
      • 因为在错误消息中它告诉我们 ia32-libs 不存在。然后我执行了“sudo apt-get install ia32-libs”,然后我工作得很好。 R 类现在完美生成。我也建议你。
      • 这也为我解决了这个问题。安装好 ia32-libs 后,我对项目进行了“清理”,然后出现了 R 类。
      【解决方案6】:

      虽然如果您的资源中存在错误确实不会生成 R,但我发现问题在于 Eclipse 并不总是报告错误。

      在您的项目目录中执行此操作:

      android update project -p .
      

      然后从命令行构建。看看这是否会出现任何有用的错误。

      【讨论】:

        【解决方案7】:

        这也可能是因为其中一个文件夹命名错误,从而损害了 android 目录结构。就我而言,我尝试以我在这里看到的多种方式生成 R 类,直到我意识到我创建了一个文件夹“res / drawble”而不是“res / drawable”。就像魔术一样,您只需转到 Project-> Clean 并选中“自动构建”,它就会出现。

        【讨论】:

          【解决方案8】:

          我使用Intellij IDEA 并且有一天 R 类停止生成(也许,更新后)。

          在编译器首选项中设置“外部构建”复选标记可解决问题:

          【讨论】:

            【解决方案9】:

            我有答案,在我的 R 类无法被 src 类检测到的情况下。只需确保 R 类所在的包的名称(appname -> gen-> package-> R.class 与您在 src Activity 类中实际使用的相同 .

            【讨论】:

              猜你喜欢
              • 2021-01-22
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-03-22
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多