从现有源创建android项目后R类丢失

时间:2010-07-12 21:06:51

标签: android eclipse

我下载了SpriteMethodTest的源代码,我想在Eclipse中构建它。所以我去了:

档案>>新>> Android项目>>从现有来源创建项目>> SpriteMethodTest

它创建了项目,但是没有生成R类。引用R中资源的任何文件都说R cannot be resolved

导入android.R只会产生R.drawable.background cannot be resolved。如何再次生成R?

10 个答案:

答案 0 :(得分:5)

您遇到问题,因为您要导入的是机器人R,而不是您的项目特定R。只需删除import android.R;,然后将鼠标悬停在对R cannot be resolved to a variable的R的引用上。从那里你可能会有几个不同的选项,R导入。您想要导入 包中的R。

答案 1 :(得分:4)

  • 在“gen”文件夹中创建空文件,并将其命名为“R.java”
  • 点击项目 - >清洁...
  • 点击Android工具 - >修复项目......

答案 2 :(得分:4)

生成的R资源文件只能由eclipse生成,如果它读取的文件可以编译,这意味着文件中的错误(例如清单文件)会阻止编译。因此,首先解决您的错误(在“问题”标签中列出),然后保存更改,然后生成更改。

它通常似乎与API版本相关的原因是因为不同的版本会导致兼容性错误。当人们抓取示例代码并且没有设置与代码创建者使用的API版本相同时,通常会发生这种情况。更改为正确的版本可解决错误并允许生成R文件。

答案 3 :(得分:2)

SpriteMethodTest我遇到了同样的问题。它与包名称或导入无关。正如tarkeshwar所说,如果没有生成R,那么问题就在编译之前。在这种情况下,它是AndroidManifest.xml

清单中的最后一个标签是

<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"/>

android:targetSdkVersion不是受支持的属性。将行更改为

<uses-sdk android:minSdkVersion="3"/>

这应该允许Eclipse生成R类。

答案 4 :(得分:2)

有一个类似的问题,似乎也是由SDK版本引起的:

  1. 项目 - &gt;属性 - &gt; android:选择合适的API lvl并单击OK。 这导致最终生成了R类,但它还是无法编译。
  2. 删除项目并再次导入(现在它具有R类)并进行首次尝试。
  3. *试图检查蛇示例代码时发生了。

答案 5 :(得分:2)

在我的环境中,android SDK缺少文件夹platform-tools,我不得不启动android并安装platform-tools。现在它正在发挥作用。

答案 6 :(得分:1)

项目 - &gt;清洁(选择您的项目) - &gt;确定

这将触发重新构建,只要项目配置为Android项目,就会重新生成R.java。

答案 7 :(得分:1)

尝试以下方法:

  • 删除gen文件夹
  • 项目=&gt;清洁
  • 右键单击=&gt; Android工具=&gt;修复项目属性
  • 右键单击=&gt;运行为... =&gt; Android应用程序

答案 8 :(得分:1)

未生成R.java通常表示其他地方存在问题,例如:Manifest.xml有错误。

修复这些错误并重建。那么应该生成R.java。

如果它仍然不存在,请执行项目 - &gt; android - &gt;修复android设置。

答案 9 :(得分:1)

在项目文件夹中运行它为我修复了

 android update project -p .

我在创建新项目时关闭了“自动构建”,因此某些文件没有创建,就像它们应该一样