243

在 Eclipse 中,我从源代码创建了一个项目,现在它显示错误 - “R 无法解析为变量”。从我在这里找到的内容来看,我已经清除并重建了项目,但 R 文件仍然没有出现在 /gen 文件夹中。

有任何想法吗?

4

30 回答 30

176

不用担心。首先你可以清理项目,然后运行项目。如果这不起作用,请点击以下链接:

于 2011-10-19T16:50:16.867 回答
43

如果 Clean/Rebuild Project 不起作用,请尝试在 AndroidManifest.xml 中检查我们的包名称。

当您在 AndroidManifest.xml 文件中更改包名称时,会出现“R 无法解决”的问题。它使用您的 Android 包名称在“gen”目录下创建一个子目录,用于存储 R.java 文件。

于 2012-05-07T09:31:08.787 回答
10

对我来说,通过在 Android SDK Manager 中进行一些更改来修复错误。
无论是可用的最新 API 级别,安装其“SDK 平台”。对我来说,最新的 API 级别是 16,所以我安装了它的 SDK 平台,如下图所示。它现在工作正常。

修复问题后 Android SDK Manager 截图
干杯,马扬克

于 2012-10-06T10:29:58.380 回答
9

你是不是同时更新了sdk和adt(从21到22),那么你需要安装一个新项目:Android SDK Build-tools

参考: Eclipse 报错,最近更新后缺少 R.java 文件

于 2013-07-09T20:30:19.160 回答
6

对我来说,项目属性;安卓; 未设置项目构建目标。我在那里选择了一个Android版本(例如4.2)并修复了它。

于 2013-02-10T07:38:28.677 回答
6

对我来说,向“R”文件有问题的人建议的最佳解决方案是尝试接下来的步骤(顺序无关紧要):

  1. 更新 ADT & SDK 、 Eclipse 和 Java。

  2. 删除 gen 文件夹,然后重新创建它。

  3. 做一个干净的项目。

  4. 右键单击项目并选择 android-tools -> fix-project-properties 。

  5. 右键单击项目并选择属性 -> java-build-path -> order-and-export。确保顺序是:

    • Android 4.3(始终是最新版本)

    • Android 私有库

    • 安卓依赖

    • 如果需要,您的图书馆项目

    • yourAppProject/gen

    • yourAppProject/src

  6. 确保 res 文件夹的子文件夹中的所有文件的名称都可以:只有小写字母、数字和下划线 ("_")。

  7. 始终确保 targetSdk 指向最新的 API(当前为 18),并将其设置在 project.properties 文件中

于 2013-09-23T09:40:31.697 回答
4

对我来说,我的 SDK 末尾缺少一个斜线。在 Eclipse > 首选项 > Android > SDK 位置

例如,改变

/home/matt/android-sdk-linux

/home/matt/android-sdk-linux/
于 2012-11-24T17:41:50.170 回答
3

您的 android 清单必须以正确的包开头

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="HERE - Correct package NAME"
    android:versionCode="1"
    android:versionName="1.0" >`
于 2013-07-11T11:03:14.603 回答
3

What you really need to do it just install "build-tools" from sdk manager, and r.java will be generated automatically.

于 2013-08-14T19:01:55.333 回答
3

我遇到了类似的问题和解决方案,我发现资源中的任何文件(即背景、声音等)都不得包含大写字母或除 _ 之外的任何特殊符号

于 2012-11-23T22:57:57.167 回答
2

我有同样的错误。错误是,我在 res/raw 文件夹中放置了一个文件名无效的文件。一旦我将文件名更正为有效文件名,错误就解决了!

命名文件的允许字符:-

1. a-z
2. . _
3. 0-9
4. no capital letters

大写字母是我的问题!

于 2013-07-02T11:24:17.753 回答
1

我通过在 Fedora 和 ADT 升级后安装附加库解决了在 fc19.x86_64 和 ADT v22.0.5-757759 上解析 R 资源的问题。

yum install ld-linux.so.2
yum install libstdc++.so.6
yum install libz.so.1

adb 需要这些库(Android Debug Bridge 版本 1.0.31)。

然后重新启动 Eclipse 并执行 project clean Project->Clean 检查您要清理的项目。

希望能帮助到你 :)

于 2013-08-02T22:58:52.447 回答
1

您的 *.xml 文件中可能有错误:布局等。

于 2012-12-09T12:24:13.300 回答
1

我遇到了这个问题,其他指南都没有帮助,然后我意识到我的系统上没有安装 java jdk。如果您还没有这样做,请下载与您安装的 eclipse 版本相对应的版本(x86 或 x64)

于 2012-11-15T00:05:16.667 回答
1

我在尝试从 Google 的“第一课”运行 Notepadv3 程序时发现了这个问题。

对我来说,由于我使用的 API 级别,这是 xml 文件的问题。我将 Match_Parent 的每个 case 重命名为旧类型的 Fill_Parent。哦,如果您已经自动构建了项目,那么您需要删除 NoteEdit.java 和 Notepadv3.java 上的“import android.R”,在保存之前清理项目(单击“项目”,然后单击“清理...”) .

为我解决了。来自这篇文章Android NDK r4 san-angeles 问题

不敢相信谷歌没有警告这个问题 - 我一直在设置另一台 PC 来重新开始编程,即使有一点先验知识,这也很痛苦。导入现有项目时如何设置 API? ?? 当您“文件”“导入”等时,看不到任何对话选项。

斯坎帕雷利

于 2012-07-08T08:21:44.560 回答
1

检查androidmanifest.xml文件和布局文件夹 xml 文件。它们应该被正确地创建,因为 xml 中的开始和结束子句应该被正确放置。更新文件,清理并构建。一切就绪!

于 2012-09-26T07:22:06.287 回答
1

尝试修改 AndroidManifest 文件。

例如添加空间和删除这个空间。在此操作之后,保存项目。资源将被刷新。它可以提供帮助。

于 2013-07-02T17:38:45.593 回答
1

有时您可能会不小心将导入添加到“R”,因此,如果在代码顶部您看到一些奇怪的导入,说明您没有自己添加,请删除引用,一切都会恢复正常

于 2011-10-19T16:42:51.103 回答
1

我的问题很奇怪,花了一些时间才找到。不知何故,src 文件的包发生了变化,因此包中的最后一个条目被删除了。例如,最初我的 MyActivity.java 类位于包 com.abc.client.test.app 中,但在添加用户权限后,应用程序被删除,包重命名为 com.abc.client.test。我不知道它是怎么发生的。重命名包并将java文件放在正确的位置解决了这个问题。

于 2012-06-03T12:54:20.763 回答
0

当其他解决方案失败时,选择您的项目并将其删除。确保不要从磁盘中删除文件。

然后使用file>import>existing android code into workspace,并选择你的项目的位置。

于 2013-06-27T09:42:43.040 回答
0

我的设置在最近更新后被破坏,SDK 构建工具需要在 SDK 安装后单独安装。所以构建工具更新 + Eclipse 重启为我解决了这个问题。

归功于此处的Android 回复

于 2013-06-12T08:15:21.470 回答
0

在我的情况下,R.java 没有生成是因为分层父错误,而这又被更新的一个或多个 Eclipse 插件修复(Go Eclipse-->Help-->Check for Updates)

于 2012-10-30T04:27:13.130 回答
0

我知道这是一个老问题,但我刚刚解决了我自己的版本,也许这可能对某人有所帮助。

在用这个撕掉我的头发两天后,我终于通过删除raw文件夹来解决它,然后重新创建它并将文件放回原处。

在那之后,另一个Project > Clean,它终于编译了。

于 2013-05-06T20:12:02.790 回答
0

项目 > 清洁...

通常会重新生成位于 gen/com.mypackage 中的 R.java 文件

于 2012-04-02T14:51:41.527 回答
0

问题是 Eclipse 没有生成 R.java。要解决此问题,请转到项目->清理...并选择您的项目并选择确定,然后清理并构建项目并导入您的包名称 R 文件(例如 com.demo.R)。有用。

于 2013-03-23T15:46:29.487 回答
0

当不遵循 android 命名约定时,可能会发生这种情况。检查您是否已将文件/照片放入其中一个 android 文件夹并确保文件名仅包含小写字母

于 2013-03-29T12:27:31.813 回答
0

当我重命名一个项目时,我得到了这个。尽管该项目已重命名,但某些引用并未重命名。清除 lint,然后重新运行 lint 有帮助。(右键项目 > Android 工具 > 清除 Lint Markers,然后运行 ​​Lint)

于 2013-06-11T14:47:53.077 回答
0

将 js 文件添加到 res 文件夹时出现此错误。

在 res 文件夹图标上设置了错误指示器。在我使用 RI 的所有课程中都出现了这个错误。

我将 js 文件移动到 assets 文件夹中,一切正常。

于 2013-02-19T01:53:04.360 回答
-1

我一直有这个,我确实将它追溯到布局文件。它再次发生在我身上,但是我在布局文件中找不到注释。我查看了 string.xml 并找到了它.. 其中一个字符串名称以 cap 开头,这导致了问题。

于 2013-11-03T23:05:12.497 回答
-1

修复 /res/menu 文件夹中 XML 文件中的任何 XML 格式错误。

可能是 XML 文件格式不正确导致的编译时错误。

于 2014-01-13T16:50:33.497 回答