我只是尝试在Eclipse的项目工作区中导入一个示例项目,但是甚至没有触及代码,它会产生大量的错误,这些错误都告诉我们R.java无法转换为变量。但是文件R.java在树结构中根本不存在,我不知道它已经消失了。现在,当我创建一个新的Android项目时,它再次在该新项目中也会出现相同的错误。我经常面对这个问题,对我来说这是一个很大的障碍..
有人可以告诉问题的原因和解决方案吗? 提前谢谢。
答案 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
屏幕2
屏幕3
答案 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)
在elcipse中更新SDK的路径后,R.java文件开始正确编译。这是任何人都没有建议的基本检查。如果您遇到此问题,请花15秒钟仔细检查。可以为您节省3个小时的Eclipse故障排除。