在示例项目中,R.java无法解析为变量

时间:2012-11-19 21:33:04

标签: android eclipse

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

有人可以告诉问题的原因和解决方案吗? 提前谢谢。

8 个答案:

答案 0 :(得分:3)

一些背景知识:R.java是从项目资源中自动生成的。当您向项目添加类似布局或可绘制资源的内容时,Android SDK将为您编译该属性并将资源ID归属于它,并且R.java类保存这些ID。

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

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

但请注意,如果您看到多个错误消息,则可能会隐藏问题的真正原因 - 例如,如果某个资源文件的XML存在语法错误,则可能会阻止SDK生成资源,从而阻止它生成R.java。因此,请仔细检查是否没有关于XML,drawables等上的解析错误的错误消息。

希望这有帮助。

答案 1 :(得分:1)

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

要转到Screen1和2,请从包浏览器右键单击您的项目,然后转到属性。

查看问题窗口screen3,Window - >显示视图 - >问题

屏幕1

Screen 1

屏幕2

Screen 2

屏幕3

Screen

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

import android.R;

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

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

答案 4 :(得分:0)

通常是Android SDK未正确安装的标志。发生在我身上很多,我必须重新指向SDK并包含适当的库。

答案 5 :(得分:0)

也许你的资源有错误(res文件夹)。如果资源没有错误,请尝试Project - >干净。

答案 6 :(得分:0)

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

以下是导致此错误的错误的方式:

项目资源管理器中的

- 将现有项目导入Workspace

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

这是正确的方式:

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

在运行此项目之前,必须首先执行此操作:在Eclipse中 - 转到项目 - 然后单击“清除”。

现在您将能够运行该项目。

答案 7 :(得分:0)

惠普,在研究出这个地狱之后,似乎什么都没有用。然后,在墙壁论坛的一些洞中,我找到了一个简单而有效的解决方案。确保Eclipse指向正确的SDK目录。我不知道我是怎么做到的但是我安装了2个SDK并且我正在使用的那个看起来很好但是我有一个指向随机的日食。

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