“R无法解析为变量”?

时间:2011-10-19 16:33:07

标签: android android-resources

在Eclipse中,我从源创建了一个项目,现在它显示错误 - “R无法解析为变量”。从我在这里找到的,我已经清理并重建了项目,但是R文件仍未出现在/ gen文件夹中。

有什么想法吗?

30 个答案:

答案 0 :(得分:175)

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

答案 1 :(得分:42)

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

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

答案 2 :(得分:10)

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

Screenshot of Android SDK Manager after fixing the problem
干杯,Mayank

答案 3 :(得分:9)

您刚刚更新了sdk和adt(从21到22),然后您需要安装新项目: Android SDK构建工具

参考: Eclipse giving error, missing R.java file after recent update

答案 4 :(得分:6)

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

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

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

  3. 做一个清洁项目。

  4. 右键单击该项目并选择android-tools - >修复项目属性。

  5. 右键单击项目并选择属性 - > java-build-path - >订单和出口。确保订单是:

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

    • Android私人图书馆

    • android依赖

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

    • yourAppProject /根

    • yourAppProject / SRC

  6. 确保res文件夹的子文件夹中的所有文件都有正确的名称:只有小写字母,数字和下划线(“_”)。

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

答案 5 :(得分:6)

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

答案 6 :(得分:4)

对我来说,我的SDK末尾有一个缺失的斜杠。在Eclipse中>偏好> Android> SDK位置

例如,更改

/home/matt/android-sdk-linux

/home/matt/android-sdk-linux/

答案 7 :(得分:3)

我遇到了类似的问题和解决方案,我发现资源中的任何一个 文件aka背景,声音等不得包含大写字母或 除_

以外的任何特殊符号

答案 8 :(得分:3)

你的android清单必须以正确的包

开头
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="HERE - Correct package NAME"
    android:versionCode="1"
    android:versionName="1.0" >`

答案 9 :(得分:3)

你真正需要做的只是从sdk manager安装“build-tools”, 并将自动生成r.java。

答案 10 :(得分:2)

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

用于命名文件的允许字符: -

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

大写字母是我的问题!

答案 11 :(得分:1)

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

答案 12 :(得分:1)

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

答案 13 :(得分:1)

检查androidmanifest.xml文件和layoutfolder xml文件。它们应该正确创建,因为xml中的起始和结束子句应该正确放置。更新文件,清理和构建。一切都准备好了!

答案 14 :(得分: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-&gt;清理要清理的项目。

希望有所帮助:)

答案 15 :(得分:1)

有时你可以意外地将导入添加到“R”,所以如果在你的代码顶部你看到一些奇怪的导入,你没有自己添加,删除引用,一切都应该恢复正常

答案 16 :(得分:1)

尝试从Googles的第一课开始运行Notepadv3程序时发现了这个问题..

对我来说,这是xml文件的一个问题,因为我使用的是API级别。我将Match_Parent的每个案例重命名为较旧的Fill_Parent类型。哦,如果你已经自动构建了项目,那么你需要在NoteEdit.java和Notepadv3.java上删除'import android.R',清理项目(点击'Project',然后'clean ...'),然后再保存

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

无法相信谷歌不会警告这个问题 - 我已经设置了另一台PC来重新开始编程,即使有了一些先验知识,这也很痛苦..如何在导入时设置API现有项目???当您'''导入'等时,无法看到哪里有对话选项。

Scamparelli

答案 17 :(得分:1)

我的问题很奇怪,需要一些时间才能找到。不知何故,src文件的包已更改,以便删除包中的最后一个条目。例如,最初我的类MyActivity.java在com.abc.client.test.app包中,但在我添加了用户权限后,应用程序被删除,包被重命名为com.abc.client.test。我不知道是怎么回事。重命名包并将java文件放在正确的位置解决了问题。

答案 18 :(得分:1)

尝试修改AndroidManifest文件。

例如,添加空格并删除此空间。执行此操作后,保存项目。资源将被刷新。它可以帮助。

答案 19 :(得分:0)

问题是eclipse没有生成R.java。 要解决此问题,请转到project-&gt; clean ...并选择您的项目并选择ok,然后清理并构建项目并导入您的包名称R文件(Ex com.demo.R)。它有效。

答案 20 :(得分:0)

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

然后将文件&gt; import&gt;现有的Android代码用于工作区,并选择项目的位置。

答案 21 :(得分:0)

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

积分转到Android reply here

答案 22 :(得分:0)

我在重命名项目时得到了这个。虽然项目已重命名,但某些引用不是。清除棉绒,然后重新运行lint帮助。 (右键单击项目&gt; Android工具&gt;清除Lint Markers,然后运行Lint)

答案 23 :(得分:0)

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

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

之后,另一个Project > Clean,最后编译。

答案 24 :(得分:0)

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

答案 25 :(得分:0)

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

res文件夹图标上设置了错误指示符。在我使用R的所有类中,我都遇到了这个错误。

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

答案 26 :(得分:0)

就我而言,由于hierarchical parent error而没有生成R.java,而{{3}}又通过更新的一个或多个Eclipse插件来修复(Go Eclipse - &gt; Help - &gt; Check for更新)

答案 27 :(得分:0)

项目&gt;清洁...

通常会重新生成位于gen / com.mypackage

中的R.java文件

答案 28 :(得分:-1)

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

答案 29 :(得分:-1)

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

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