我的项目中没有生成 R.java 文件[重复]

Posted

技术标签:

【中文标题】我的项目中没有生成 R.java 文件[重复]【英文标题】:No generated R.java file in my project [duplicate] 【发布时间】:2011-05-04 09:53:19 【问题描述】:

我正在做Notepad tutorial, exercise 2。我首先创建了一个新的 android 项目,然后选择从源代码创建来导入下载的源文件以进行练习。

但是现在我在 Eclipse 中遇到很多错误,问题是没有生成 R.java 类。我该如何解决这个问题?文件夹gen/ 为空。


我在Notepadv2.javares/layout/note_edit.xml 上有错误,两者似乎都与生成的R.java 丢失有关。

这是我在Notepadv2.java 中的import 声明:

import android.R;
import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter; 

它们是由 Eclipse 命令 Ctrl+Shift+O 创建的。

【问题讨论】:

对于那些仍然遇到 Eclipse 无法更新/生成 R.java 问题的人。一种可能的解决方案是创建一个虚拟 xml,然后删除该 xml。就我而言,这是解决方案 从字面上看,整天都在努力寻找答案……对于 appcombat 和您的项目。转到 properties > Android 并将 Project Built Target 更改为 API level 21。 【参考方案1】:

转到Project 并点击Clean。除其他外,这应该会重新生成您的 R.java 文件。

同时删除任何 import android.R.* 语句,然后进行我提到的清理。

显然 Jonas 问题与不正确的目标构建设置有关。他的目标构建设置为 Android 2.1 (SDK v7),其中他的布局 XML 使用 Android 2.2 (SDK v8) 元素(布局参数match_parent),因为那里Eclipse 无法正确生成导致所有问题的 R.java 文件。

【讨论】:

@Jonas:请发布您的导入。 @Jonas:完全正确。主应用程序的导入部分。 当我将构建目标从Android 2.1 更改为Android 2.2 时,会生成R.java。但是当我改回Android 2.1 并且在我改回Project>Clean 之后,R.java 会再次被删除。 @Jonas:不要更改目标构建。你试过我提到的吗? @Saher 因为在你的班级中拥有另一个包的 R 文件肯定会搞砸一切。【参考方案2】:

一整天试图找出为什么没有生成 R 文件后,我发现在安装 Android SDK Tools r22 后,工具中有一个新选项可用:Android SDK Build Tools。

安装后再次生成R文件。

【讨论】:

成功了。谢谢。 我正在寻找这个新选项,在哪里可以找到它? 右键项目>Android工具>运行Lint:常见错误 我终于解决了这个问题,更新Android SDK工具并重启eclipse,非常感谢 谢谢!为什么他们总是要打破东西???【参考方案3】:

现在您已导入 android.R 而不是您自己的 R...如果您的某个 xml 文件中有错误,请尝试查看您的“问题”视图...摆脱 import android.R 和注释掉 R.*

的所有用法

当您的项目没有其他错误时,清理应该会有所帮助,因此请检查您的 res 文件夹中的 xml 文件或文件命名

【讨论】:

当我删除 import android.R 我在 Problems 视图中有两个错误。它们是R cannot be resolved to a variable in Notepadv2.javaerror: Error: String types not allowed (at 'layout_height' with value 'match_parent') in note_edit.xml 如果您的目标版本是 2.1,那么 match_parent 将不可用,因为它是在 Android 2.2 中添加的。 @Octavian:啊,所以XML解析失败,所以没有生成R.java。现在,当我将构建目标更改为 Android 2.2 时,它似乎可以工作。您可以将其添加到您的答案中。【参考方案4】:

您可能使用了不正确的 SDK 版本。右键单击您的项目。选择属性-->Android。请注意,2.2 是最新的 SDK。检查它,看看它是否被编译...

编辑

之后也要进行清洁

【讨论】:

Properties > Android 中我只能选择Build target,而我想要的是Android 2.1。在同一个对话框中还有一个空的库部分。 是的,在构建目标中,您应该选择 2.2,是的,您确实使用了不正确的 SDK 版本 :)【参考方案5】:

I Had a similar problem

识别此问题的最佳方法是识别 Lint 警告:: *右键点击project > Android Tools > Run Lint : Common Errors*

这有助于我们显示一些错误,通过这些错误我们可以解决问题 这使得 R.java 再次重新生成 按照上述步骤,我发现我添加了一些图像 我没有使用过的文件->我删除了它们->修复了 问题!

终于清理项目了!

【讨论】:

【参考方案6】:

我的同事有这个问题 - 重启 eclipse 解决了它。

【讨论】:

【参考方案7】:

在 Android SDK 管理器中更新 Android SDK 工具以获取 22.0.1 版。 它对我有用。

【讨论】:

【参考方案8】:
    从您的代码中删除“import R.java”行。它由 Eclipse 完成以解决问题。 转到“note_edit.xml”文件。无论您在何处找到“match_parent”作为属性值,都将其替换为“fill_parent”或“wrap_content”。 进行干净的构建。 R.java 会自动生成。

如果您遇到此问题,则表示您的内容不支持“match_parent”属性。而是使用“fill_parent”。

"fill_parent:视图应该与其父级一样大(减去填充)。从 API 级别 8 开始不推荐使用此常量,并替换为 match_parent。"

【讨论】:

【参考方案9】:

你安装了安卓插件吗?

你的项目必须是android类型的。

【讨论】:

这与我遇到的问题很接近——我想我在 .project 文件的 buildSpec 部分中遗漏了一些东西。不知道它是怎么做到的,或者修复它的正确方法,但我基本上从一个工作项目中复制/粘贴,然后再次构建 R.java。【参考方案10】:

这实际上是教程代码中的一个错误。我遇到了同样的问题,我终于意识到问题出在“note_edit.xml”文件中。

一些 layout_heigh/width 属性被设置为“match_parent”,这不是一个有效值,它们应该被设置为“fill_parent”。

这引发了一个错误,导致 R.java 文件的生成失败。因此,如果您遇到此问题或类似问题,请检查您的所有 xml 文件并确保它们都没有任何错误。

【讨论】:

【参考方案11】:

我刚刚遇到一个问题,以前工作的项目停止工作,因为没有生成 R.java,所以引用 R 的所有内容都被发布为错误。

** * 检查控制台视图 **

我(使用查找器)备份了主图标(甚至没有使用) 所以其中一个 res 文件夹 (hdpi) 有

图标.png icon.png 的副本

控制台指出“icon.png 的副本”不是有效的文件名。 其他任何地方都没有标记错误 - res 文件夹中没有红色 X....

但是用“_”替换空格,一切都恢复正常了......

【讨论】:

【参考方案12】:

我多次遇到这个问题。根本问题是

    项目设置中没有选择目标sdk版本

    文件 default.properties(在 manifest.xml 旁边)丢失或未设置最低 sdk 级别。

检查这两个并按照之前选项中的建议进行干净的构建,它应该可以正常工作。

检查“问题”或“控制台”选项卡中的错误。

最后:你有/eclipse对项目文件夹有写权限吗? (也不太可能是磁盘空间)

【讨论】:

项目目标已设置,但我不知道“min sdk level”。我在哪里可以看到它是否已设置?在default.properties 我只有target=android-7 @Jonas:这意味着目标构建设置为 Android 2.1。 manifest中还有一个属性。您是否在问题选项卡或控制台中看到任何类型的“错误”? 是的,看我对WarrenFaith的评论【参考方案13】:

我也遇到过 R.java 丢失等问题,当没有错误时,eclipse 抱怨我的代码中有错误(对类文件显示红色 X 图标)。

我发现解决此问题的唯一方法是通过选择 Project > Clean 来清理项目

这似乎解决了我自己的问题,运行 Eclipse 3.5.2

【讨论】:

【参考方案14】:

是的,我也有同样的问题。我通过以下方式修复了它 从工具栏中选择项目清理项目 还重置构建自动选项 有时需要更改 xml 文件匹配格式的名称 [a-z][0-9] 必须更改大写字母

【讨论】:

我不知道这是否是一个新功能,但我的布局文件的名称中有一个下划线,一切正常。【参考方案15】:

似乎当您更改为最新的 SDK (2.2) 时,构建不再生成 R.java 文件。或者至少不是我们习惯的方式。要解决此问题,请删除 gen 文件夹下的包并在不构建的情况下进行清理。这为我解决了这个问题。

【讨论】:

【参考方案16】:

由于 Android 插件中的一些内部错误,我遇到了这个问题。当我尝试打开一些布局 xml 时,出现错误:

The project target (Android 2.2) was not properly loaded.

幸运的是,在我的情况下,重新启动 Eclipse 并清理项目有所帮助。

【讨论】:

【参考方案17】:

这也可能是例如不正确的 xml 布局文件的问题。如果您的 xml 文件无效(包含错误),R 文件将不会在清理后重新生成。如果你解决了这个问题,R文件将再次自动生成。

【讨论】:

【参考方案18】:

根据我的经验,我可以总结一下:

1.问题主要是指语法问题,可以 发生在 xml 文件上。

2.您可能会不小心将 AndroidManifest.xml 复制到子文件夹中。

1.一个文件是未定义的扩展名。

检查所有这些后转到项目->清理或删除 /bin 和 /gen 文件夹。

【讨论】:

【参考方案19】:

只需重新启动 Eclipse 将解决此问题,因为工作区将重新构建!去

文件 -> 重启

这是避免挫败感的最简单方法,方法是进入 Build、properties、blah blah.....

【讨论】:

如果这不能解决这个问题,那么可以考虑其他答案!【参考方案20】:

还有一个:我快要哭了,却把我心爱的R.java找回来了:

我已经有一段时间没有更新我的 Android 安装中的任何内容了。我需要一个功能并运行 SDK 管理器。除了我需要的东西,我基本上检查了它想要更新的所有东西。之后我的R.java 在 Eclipse 中消失了。

简而言之,在 SDK 管理器中有一个新条目“Android SDK Build-tools”,我猜我上次更新时并不存在。这是一个明显的名字,真的。在我安装了那个 Eclipse 之后,我把我的 R.java 还给了我。

【讨论】:

【参考方案21】:

java ....比调试.. 要么 从代码中删除“import R.java”行。它由 Eclipse 完成以解决问题。 转到“note_edit.xml”文件。无论您在何处找到“match_parent”作为属性值,都将其替换为“fill_parent”或“wrap_content”。 做一个干净的构建。 R.java 会自动生成

【讨论】:

以上是关于我的项目中没有生成 R.java 文件[重复]的主要内容,如果未能解决你的问题,请参考以下文章

R文件缺少android

Android ADT 版本 22,未生成 R.java 文件

错误:无法打开类文件 R.java [重复]

Android项目开始时的R错误[重复]

Mindscape Web Workbench 使用 Sass 编译时生成重复的 CSS 文件

Android Studio 重复生成的文件