Eclipse 错误:R 无法解析为变量 [重复]

Posted

技术标签:

【中文标题】Eclipse 错误:R 无法解析为变量 [重复]【英文标题】:Eclipse error: R cannot be resolved to a variable [duplicate] 【发布时间】:2013-05-14 14:28:08 【问题描述】:

我在 Eclipse IDE 中遇到了这个经典错误。我对 Eclipse 的错误感到厌烦。他们把我逼疯了。

我几乎尝试了所有建议的解决方案(通过谷歌搜索)。他们都没有工作。

我的项目工作正常,但代码没有变化。

我发现我的代码更改没有作用于我的应用程序(在 AVD 上),然后我清理了我的项目(在 Project > Clean... 下)。 R.java 文件不见了,res 文件夹为空。

现在我收到了那个错误:R cannot be resolved to a variable.

我该怎么办?

我还尝试删除项目并使用我之前备份过的android Project from Existing Code 再次创建。清理后它已经给出了同样的错误。

任何想法都将不胜感激。

【问题讨论】:

请检查您的 res/values 文件夹是否有任何错误? 你能发布给你带来问题的类的导入吗? 希望我的 G+ 帖子能帮到你。检查:plus.google.com/u/0/101756163023567589496/posts/TWTi1w63Zdg @PareshMayani 成功了,谢谢。 所以版主请不要将此类问题标记为重复。 Eclipse、Xcode 每年都在不断变化,旧的解决方案不再适用。或许 SO 可以建议最新的类似问题,这样很多人就不必在遇到最新问题之前花费数小时搜索旧问题。 【参考方案1】:

我假设您已使用版本 22 更新了 ADT,并且没有生成 R.java 文件。

如果是这种情况,那么解决方法如下:

希望您知道 Android Studio 有 gradle 构建工具。与在 eclipse 中一样,他们在 Tools 文件夹中提供了需要安装的名为 Android SDK Build-tools 的新组件。打开Android SDK Manager,选择新添加的构建工具,安装,更新后重启SDK Manager。

【讨论】:

@Raghunandan 是的 1 snap = 1000 字:D 很好的修复。解决了我的问题 为什么 ADT 更新不附带它是一个谜。相反,它只是破坏了每个开发人员的环境。 这个答案你应该获得奥斯卡奖!为什么google在更新ADT之前不给readme文件? 哇,谢谢,我很沮丧!【参考方案2】:

我不会将此作为答案发布,而是对 Paresh 接受的答案的确认。我最近将 SDK 工具更新为修订版 22,我注意到我的代码更改对我正在测试的设备根本没有影响。例如我使用的 url,我收到关于我“以前”使用的 url 的连接超时错误。因此,我清理了项目并再次构建,却发现自动生成的 R.java 文件丢失了。

在阅读了 Paresh 的回答并检查了我的 sdk 经理的情况后,我看到了以下内容:

SDK Build-tools 17 没有安装并且已经有一个新的 SDK 工具更新即使它没有在更新日志中提到与这个问题相关的任何改变,这个更新带回了我的 R.java 文件和相关的问题在 Eclipse 重新启动和项目的最终清理/重建后消失了。

【讨论】:

+1 好话!!干杯 这个答案提供了一个重要的细节。必须重启 Eclipse。但是重新启动 SDK Manager(在另一个答案中提到)没有帮助,在我的情况下甚至没有必要。【参考方案3】:

如果您的布局包含错误,则无法生成 R 文件。如果您的 res 文件夹为空,那么可以安全地假设其中没有包含任何布局的 res/layout 文件夹,但您的活动可能正在调用 setContentView 并且没有找到任何内容——这就是您的布局有问题.

【讨论】:

你是怎么知道我的 res 文件夹是空的?不为空,res/layout也不为空,里面有9个xml文件。 引自您自己的帖子:“并且 res 文件夹是空的。” 关心完整的句子:“然后我清理了我的项目(在 Project > Clean... 下)。R.java 文件不见了, res 文件夹为空。”打扫完之后是空的。这样的事情会发生。还是谢谢你。 整个句子的帮助不大,但没有在某处表明您后来重新创建了 res 文件夹。绝对清晰是获得良好答案的途径,但我很高兴为您解决了问题。 解决这个日食问题的好方法【参考方案4】:

尝试删除导入行import com.your.package.name.app.R,然后,任何资源调用如mView= (View) mView.findViewById(R.id.resource_name);会突出显示'R'并出现错误,'Quick fix'会提示您导入R,并且会出现在至少两个选项:

android.R your.package.name.R

选择与你的包名对应的R,你应该可以开始了。希望有帮助。

【讨论】:

我已经尝试过了,但快速修复菜单中没有“.R”。那里只有“android.R”。【参考方案5】:

除了安装构建工具并重新启动更新管理器之外,我还必须重新启动 Eclipse 才能完成这项工作。

【讨论】:

【参考方案6】:

我有一个完全正常工作的项目,在更新 SDK 后发生这种情况时,我正在对它进行小幅更改。 Eclipse 更新了 SDK 和 ADT,但我仍然无法构建项目。 Exlipse 表示没有进一步的更新。

问题一直存在,直到我从 eclipse 中手动卸载 ADT 并重新安装它。 只有这样我的项目才能建立。我在每个步骤之间重新启动了 eclipse。

【讨论】:

以上是关于Eclipse 错误:R 无法解析为变量 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Android - R无法解析为变量[重复]

“R无法解决” [重复]

R 无法解析为 Eclipse 中 CastCompanionLibrary 上的变量

R无法解析为新项目中的变量[重复]

R.raw.anything 无法解决[重复]

R.id 给出错误“无法解析符号'R'”[重复]