【问题标题】:R cannot be resolved - Android, no import android.R; statementR 无法解决 - Android, no import android.R;陈述
【发布时间】:2011-04-25 17:04:36
【问题描述】:

好的, 我正在开发一个新应用程序,只要我使用相对视图,一切都运行良好。但是,我想要一个选项卡式布局,所以我将我所拥有的(到目前为止没有太多,因为我刚刚从数据库中读取它并设置工作)切换到选项卡式视图。从那时起,任何包含任何 R. 语句的类都会出现“R 无法解析”错误。我正在学习 Android“Hello Views”教程中的教程,所以我假设这不是问题(但它仍然可能是)。

【问题讨论】:

    标签: android eclipse android-layout


    【解决方案1】:

    我有几点建议:

    1. 确保除了 R 相关错误之外没有任何其他错误。在 Eclipse 中右键单击您的项目文件夹,Android 工具 -> 修复项目属性。

    2. 检查以确保您导入了正确的 R。有时可以导入默认的 Android.R。

    3. 检查布局 XML 文件中的错误。

    【讨论】:

    • 发现我的 res/layout/main.xml 文件中缺少一个字符。
    • +1 以首先消除与 R 无关的错误。我还没有完全弄清楚,但是我在另一个项目中遇到了与 R 无关的错误,我无法理解它们是如何相互作用的——但是首先清除这些错误会使 R 错误消失。去图吧。
    【解决方案2】:
    1. 您可以尝试“清理”您的项目。
    2. 默认技术解决方案有时会有所帮助:重新启动 Eclipse(严重)
    3. 如果您有错误(可能是您的 XML 中的某些内容,或其他内容),则无法编译 R。如果是这种情况,请尝试查找记录的第一个错误。如果你解决了这个问题,R 将被编译并找到。如有必要,请在修复后使用第 1 点和第 2 点。
    4. 删除导入部分中的所有“import R”内容。你不想这样。

    【讨论】:

    • 您不想导入 android.r,但您确实想导入作为项目一部分的 R。
    • 不,你不想导入任何 R,正如下文所述,有时 Eclipse 会提供错误的类路径,它会导致 R 从 android.R 而不是 yourpackage.R 派生 - - 清理和重启(偶尔使用自动完成来确保它使用 yourpackage.R 而不是 android.R)是解决方案。同样,R 是(应该)作为项目的一部分构建的,不应该被导入。
    • 当我不从 com.mypackage.r 导入 R 时出现错误。这是因为我的启动活动在单独的包中吗?
    • 我不知道。如果重新启动、清理和修复项目等不起作用,则可能存在一些错误。它与 R an sich 无关:用于生成 R 的代码中有错误,因此不会生成。如果没有生成,就找不到了。寻找非“R”问题。
    • 如果我的启动活动不为包外的任何内容导入 r,我的项目将无法运行。
    【解决方案3】:

    如果您使用的是 Eclipse,请尝试通过执行 Project/Clean 并重新构建您的项目来尝试一下。 Android 项目的类路径有时会出现随机问题。

    【讨论】:

      【解决方案4】:

      除了前面答案中的好建议外,请确保您的 Android 目标已设置:

      1. 右键单击您的项目
      2. 选择属性
      3. 在左侧菜单中选择 Android
      4. 勾选相应项目构建目标旁边的框。
      5. 点击应用和确定

      编辑:一年后我找到了另一个原因。我的可绘制文件夹中有一个与 .png 图像同名的 .jpg 图像。在我的代码中引用此图像一定会混淆程序,并给出“R 无法解析”错误。

      【讨论】:

        【解决方案5】:

        如果您的“res”目录中的任何内容使用非法字符命名,则可能会发生这种情况。

        请注意,android 只允许使用小写字母(不能大写!!!)、数字和下划线。仅此而已!

        几乎每个操作系统都允许使用其他字符,因此将文件移动到“res”目录很容易产生这个问题。

        修复?重命名文件。这是通过右键单击包或项目资源管理器中的文件并选择 Refactor->Rename 来完成的。之后你可能需要清理你的项目,但要小心可能会出现的可怕的“import android.R”。

        祝你好运! -斯科特

        【讨论】:

          【解决方案6】:

          检查您认为正在使用的所有字符串(例如“@string/Hello_world”)是否确实存在于您的 strings.xml 文件中。使用android:title="@string/Navigation" 声明菜单项后出现 OP 错误,但我没有将 <string name="Navigation">Navigation</string> 添加到 strings.xml

          【讨论】:

            【解决方案7】:

            我也遇到了示例问题,这对我有用。

            1.) 检查布局 XML 中的任何错误。尤其是在文字和标题方面

            你应该使用

                android:text="@string/hello" 
            

            而不是

                android:text="hello"  
            

            .2) 清理你的项目

            .3) 重启 Eclipse

            【讨论】:

              【解决方案8】:

              您应该导入自己的项目 R 类,而不是 androids 默认的 R 类,即。
              你的.app.package.R

              这将使值在你的类的 res 文件夹下定义。刷新之后,然后清理您的项目。

              【讨论】:

                【解决方案9】:

                在我的情况下,这是因为我重构了我的项目并将一些类移动到文件夹结构中。这些类无法像往常一样找到 R,因为它基于根源文件夹。

                【讨论】:

                  【解决方案10】:

                  您需要确保导入 R。如果您的主包是 com.example,请尝试在文件顶部导入“com.example.R”。出于某种原因,eclipse 不会为您执行此操作。

                  【讨论】:

                  • 您不需要“import R”,也不应该这样做。问题是 R 没有被编译,因为一些错误(或者只是随机的东西,可以通过清理来修复)。
                  • 当我有一个单独的包中的活动而不是我的启动活动时,我需要“导入 R”,否则我的项目会给我一个错误。我试过清理和重建。
                  猜你喜欢
                  • 2014-09-15
                  • 1970-01-01
                  • 2014-09-19
                  • 2013-08-20
                  • 2014-07-23
                  • 2016-11-12
                  • 2020-09-01
                  • 1970-01-01
                  • 2018-11-16
                  相关资源
                  最近更新 更多