【问题标题】:in a sample project R.java cannot be resolved to a variable在示例项目中,R.java 无法解析为变量
【发布时间】:2012-11-19 21:33:03
【问题描述】:

我只是尝试在 Eclipse 的项目工作区中导入一个示例项目,但甚至没有接触代码,它给出了大量的错误,所有这些错误都表明 R.java 无法转换为变量。但是文件 R.java 根本不存在于树结构中,我不知道它去了哪里。现在,当我创建一个新的 Android 项目时,它也会在该新项目中再次出现相同的错误。我经常遇到这个问题,这对我来说是一个很大的障碍..

谁能告诉我问题的原因和解决方法? 提前致谢。

【问题讨论】:

  • 试试Project->Clean->Clean All
  • 仔细检查项目的 project.properties,在某些情况下 target=?设置得太低,以致 Eclipse 无法完成编译,因此不会生成 R 文件。这甚至发生在像 APIDemo 这样的 Android 示例项目中。

标签: android eclipse


【解决方案1】:

一些背景知识:R.java 是从您项目的资源中自动生成的。当您向项目添加布局或可绘制资源等内容时,Android SDK 会为您编译并为其分配资源 ID,而 R.java 类会保存这些 ID。

有时在导入示例项目时,Eclipse 会失败(或需要很长时间)根据资源生成 R 类,同时您会看到这是一个错误。如果您尝试使用自动导入修复程序 (Ctrl+Shift+O) 修复错误,问题会变得更糟,因为 Eclipse 会将import android.R 添加到您的文件中,这是不正确(删除它如果你在你的任何文件中找到它)。

这种情况下的解决方案通常是清理项目(Project | Clean)并重新构建它,它应该可以正常工作。

但是请注意,如果您看到多条错误消息,则可能隐藏了问题的真正原因——例如,如果您的某个资源文件的 XML 中存在语法错误,这可能会阻止SDK 无法生成资源,这反过来又会阻止它生成 R.java。因此,请仔细检查是否有关于 XML、drawable 等的解析错误的错误消息。

希望这会有所帮助。

【讨论】:

  • 我已经清理了解决方案并重建了它。但是这些东西没有效果。而且,没有其他错误。它只是与 R.java 相关
  • 我在drawable中包含的图像名称不符合命名约定,例如它们包含大写字母等。
【解决方案2】:

也许您忘记将相关库添加到您的项目中?

要转到 Screen1 和 2 ,请从包资源管理器中右键单击您的项目,然后转到属性。

查看问题窗口屏幕3、窗口-> 显示视图-> 问题

屏幕 1

屏幕 2

屏幕 3

【讨论】:

    【解决方案3】:

    更改project.properties文件中的target=android-X,将X替换为示例项目所在的api级别。例如,如果您从 sdk-path\samples\android-17 目录,然后用target=android-17 替换它,然后重建项目。

    【讨论】:

      【解决方案4】:

      通常表明未正确安装 Android SDK。经常发生在我身上,我必须重新指向 SDK 并包含适当的库。

      【讨论】:

        【解决方案5】:

        也许您在资源(res 文件夹)中有错误。如果资源没有错误,请尝试 Project -> Clean。

        【讨论】:

        • 正如我告诉你的,我已经导入了一个在安装过程中下载的示例项目。示例项目的资源是否应该包含错误?我不这么认为...我尝试过清洁,但没有任何区别
        【解决方案6】:

        确保您的源文件不包含类似...的导入

        import android.R;
        

        另外,请检查您的 XML 文件是否正确,因为您的 XML 中的错误(res 文件夹下的布局等)可能会导致此问题。

        另一个原因可能是您重命名包但未在 AndroidManifest.xml 文件中更新包名称。

        【讨论】:

          【解决方案7】:

          我刚刚在我的电脑上进行了测试,我得到了它的工作。现在,此解决方案不适用于所有样本。它适用于名为 ApiDemo 的项目,但不适用于 MapsDemo。您遇到此问题的原因是因为您没有采取正确的步骤。如果按照您的说法导入,那么您将遇到这种问题。

          这是导致此错误的错误方式:

          在项目资源管理器中 - 导入 - 现有项目到工作区

          如果你这样做,那么是的.. 你的 R.java 文件将不会被创建。

          这是正确的方法:

          点击新建 - 项目 - 选择“Android 示例项目” - 现在您可以选择您选择的构建目标 - 选择您想要的项目并点击完成。

          在运行此项目之前,您必须首先执行以下操作:在 Eclipse 中 - 转到项目 - 并单击“清理”。

          现在您可以运行该项目了。

          【讨论】:

            【解决方案8】:

            小崽子,在研究完这件事后,似乎没有任何效果。然后,在墙上论坛的某个洞中,我找到了一个简单而有效的解决方案。确保 Eclipse 指向正确的 SDK 目录。我不知道我是怎么做到的,但我安装了 2 个 SDK,我正在使用的那个看起来不错,但我有 eclipse 指向一个随机的。

            在 elcipse 中更新 SDK 的路径后,R.java 文件开始正确编译。这是没有任何人建议的基本检查。如果您遇到此问题,请花 15 秒时间仔细检查。可以为您节省 3 个小时的 Eclipse 故障排除时间。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2014-03-14
              • 2013-07-20
              • 1970-01-01
              • 1970-01-01
              • 2012-07-30
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多