【问题标题】:'R cannot be resolved to a variable' - gen folder is empty'R 无法解析为变量' - gen 文件夹为空
【发布时间】:2012-02-16 13:37:56
【问题描述】:

我有一个错误:

R cannot be resolved to a variable

排队:

setContentView(R.layout.main);

但我无法解决它做其他用户写的应该尝试的事情,它们是:

  1. 摆脱“import android.R”行。
  2. 清理项目,然后重新构建。
  3. 关闭项目,然后再次打开。
  4. 转到项目属性 > Java 构建路径 > 勾选 Android 版本复选框
  5. 按照程序:取消选中项目->自动构建项目->属性->构建器:确保选中所有 Android (3) 和 Java (1) 构建器(仅此而已)窗口->首选项->Android->构建:选中“构建时自动刷新资源和资产文件夹”右键单击项目->Android工具->修复项目设置(不确定它实际上做了什么,但它不会受到伤害)
  6. 一些用户建议检查 .xml 文件是否正确。我不知道我怎么能做到这一点。我必须承认我是 java 和 android 编程的新手,我什至没有在我的项目中写过一行代码 - 代码是自动生成的。
  7. 布局 xml 文件使用小写字母命名。
  8. 资源文件中没有错误(没有红叉)。

布局 main.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

</LinearLayout>

提前感谢您的帮助!

【问题讨论】:

  • 签入您的 XML 文件,这可能是您使用的资源在您的资源中不可用。因为它有时不会显示错误,但是当您清理和构建项目时未成功构建。
  • 2 否决票?严重地?您只阅读了问题的标题吗?显然,他事先做了很多研究和检查。这个问题很清楚,对于初学者来说有足够的细节。 cmets 中链接的线程中提到的所有内容都已完成。所有与零研究工作有关的懒惰问题都会被推到天上。我有时听不懂你,SO 社区。​​span>
  • @Deepak 不是完全重复的。另外,至少请在投票之前阅读整个问题(任何人)。
  • 我快要疯了,因为我现在想弄清楚两天。很难提及我已经尝试过的所有事情......我已经看过上面提到的帖子。我已经指出了最常见的解决方案。
  • 这个问题只存在于您当前的项目中,还是也存在于新创建的项目中?尝试重新创建您的项目并检查此问题,如果此问题得到解决,请通知我。

标签: android eclipse


【解决方案1】:

检查您的res/ 文件夹,以确保其中包含的每个文件都没有错误。如果存在任何错误R,则无法生成。

【讨论】:

  • 如果文件包含错误,是否可能不会出现红叉?可能是 res 文件夹有问题,但由于某种原因我看不到?
  • 不知道这是否可能,但请记住 R.java 是从 res 文件夹内容自动生成的(例如,R.java 包含您的布局 ID)。所以,我最好的猜测是问题就在那里。
  • main.xml 文件看起来像这样:schemas.android.com/apk/res/android" android:layout_width="fill_parent " android:layout_height="fill_parent" android:orientation="vertical" > 对不起,我不知道为什么它不能正确显示..
  • ";"对我来说似乎是正确的一部分。 drawable 或 values 文件夹中的任何内容?
  • 是的,在drawable-hdpidrawable-ldpidrawable-mdpi中有Android的图片(命名为 ic_launcher.png)。文件夹 values 包含 strings.xml
【解决方案2】:

是的,我被困在这个问题上好几个小时了。我的解决方案是:从工作区删除所有项目->通过转到文件->导入->浏览->选择项目->重新导入所需的项目,最后选中“将项目添加到工作集框”,然后单击完成.我曾经的 .R 错误然后消失了。我希望这可以帮助别人!

【讨论】:

    【解决方案3】:

    不要import Android.R;

    相反,

    import package.name.R; 其中package.name 是您在清单中声明的​​包名称。

    Android.R 包含 Android 打包的所有默认布局。你的自定义布局不会是Android.R,而是package.name.R;

    【讨论】:

    • 我也试过这个。除了第一个错误,我还有另一个错误:The import my.second.project.R cannot be resolved 我想这不是解决方案。
    • 如果未生成 R,则您的资源之一存在问题。检查你的布局和drawables和manifest,确保没有任何东西被标记为红色。生成 R 后,您要确保引用 my.projet.R 而不是 Android.R
    【解决方案4】:

    在 Eclipse 中,您有“问题”窗口。如果您修复了除 R 之外的所有其他问题无法解决,则“R”问题将自动修复,因为没有生成 R,因为您很可能遇到了与项目相关的问题。

    希望这会有所帮助。如果您无法做到这一点,请打印您的问题窗口显示的内容。

    【讨论】:

    • 我无法上传图片(响亮点不足)。我在“问题”窗口中有一个也是唯一的问题:{R 无法解析为变量 main.java}
    • 尝试转到 main.java 按 ctrl+shift+O 并导入正确的 R。不知道如果这可行但值得一试。
    • 好吧,我不是专家,但其他用户不推荐它,因为它会生成 import android.R 这不是这里的问题。
    【解决方案5】:

    清理您的项目一次。它应该自动再次构建该文件。 转至Project-&gt;Clean 当然,只有当您的 xml 文件在语法上正确时才会起作用!

    【讨论】:

    • 很高兴阅读他说他清理了项目的实际问题。
    【解决方案6】:

    删除您的 R.java fie 并让它再次生成...可能这会有所帮助...我多次遇到相同的问题

    【讨论】:

    • 一开始我没有 R.java 文件。
    【解决方案7】:

    试试这个: 评论setContentView(R.layout.main); 并再次构建/清理您的项目。然后取消注释注释行。那时应该不会看到这个问题。

    【讨论】:

    • 试过这个。没有效果 - 仍然是同样的问题。
    【解决方案8】:

    试试这个:

    1. 首先从 Project>Build Automatically 中禁用自动构建选项
    2. 更改 Eclipse 工作空间
    3. 创建一个新的 Hello World 测试项目
    4. 评论setContentView(R.layout.main);
    5. 在 Eclipse 中右键单击您的项目手动构建项目>构建项目
    6. 检查gen文件夹下的R.java是否已经生成
    7. 如果是,则取消注释setContentView(R.layout.main);
    8. 现在再次手动构建项目并运行

    这应该可以解决问题。

    【讨论】:

    • 我试过了。 R.java 尚未生成,因此错误并未消失。
    • 您是否正确下载了Android SDK?只需检查 android_sdk/plateform tools 文件夹中是否有 aapt.exe 即可。
    【解决方案9】:

    问题解决了,但我不知道发生了什么变化...我重新安装了Eclipse,SDK等,gen文件夹和以前一样是空的,同样的问题。

    我的主管告诉我再做一遍,并且(目前)有效。我不知道是什么原因。我虽然已经尝试了一切,但它现在正在工作,所以我永远不会知道。谢谢你们的帮助!

    【讨论】:

      【解决方案10】:

      上面提到的没有对我有用。 不过,我自己修好了。

      解决方案:

      如果您在app_name/res/layout 内有除activity_main.xml / main.xml 之外的任何其他文件,请将其删除并尝试清理并构建。

      注意:

      app_name/res/layout 中不需要的文件或(稍后使用的)文件将是 *.out.xml。删除相同的。

      【讨论】:

        【解决方案11】:

        确保您正在扩展 Activity 类

        【讨论】:

        • 请务必详细说明您的答案
        【解决方案12】:

        我也遇到过类似的问题。尝试了一切,gen文件夹仍然是空的。它必须使用 SDK 版本 22。我没有安装“Android SDK 构建工具”。我只需要使用 SDK Manager 安装它并重新启动 Eclipse。正如成员在另一篇文章中指出的那样,此链接中更好地解释了答案: https://stackoverflow.com/a/16643060/1691231

        【讨论】:

          【解决方案13】:

          您真正需要做的只是从 sdk 管理器中安装“build-tools”,然后 r.java 将在 gen 文件夹中自动生成 :)

          【讨论】:

            【解决方案14】:

            简单

            检查您的 SDK 是否与您的 AndroidManifest 和 project.properties 版本相同。

            【讨论】:

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