2013-02-27 110 views
0

我有一个问题,很多人都看过很多问题,这在主题中有描述:有时,R.java消失,经过一段时间(太长的时间)改变了我所做的工作,R.java背部。当R.java没有生成时,调用R的行显示错误:'R无法解析为变量'。R无法解析为变量 - Eclipse技巧找到错误?

我知道R不是真正的问题,并且在我的代码中有一个或多个错误。

我的问题是:如果Eclipse不显示它们,如何定位这些错误?

如果你有同样的问题,作为我来说,第一次看到"R cannot be resolved to a variable"?它可以帮助您摆脱那mercyless错误

+2

尝试清理您的项目......大部分时间都是因为项目构建而发生的。 – 2013-02-27 14:53:37

+0

“R.java消失......回来”。我没有丝毫的想法,你在这里意味着什么。你能照亮我吗? – bofredo 2013-02-27 14:55:14

+0

我已经试图清理我的项目,因为暗示有http://stackoverflow.com/questions/7824730/r-cannot-be-resolved-to-a-variable 但是,R不是由于我的代码,我无法本地化 – WhiskThimble 2013-02-27 15:31:26

回答

4

如果你想找出这个错误的根源,试试这个:

  1. 转到Project -> Clean。这将确保你的错误不是由于糟糕的构建。如果仍然无法找到R,请转到步骤2.
  2. 您应该在Eclipse中有一个​​选项卡,它将列出打开项目中的所有错误和警告,如下面的屏幕截图所示。如果看不到“问题”选项卡,请转至Window -> Show View -> Problems
  3. 展开Errors部分以查看存在哪些问题。在大多数情况下,您会被告知问题,项目,文件和行号。

enter image description here

+0

首先,感谢您的帮助。我是新的Eclipse用户,我不知道Problems选项卡。 但我的问题是:此选项卡中显示的错误是'R无法解析为变量',这表明R没有生成。我想找到阻止Eclipse生成R.java的错误 – WhiskThimble 2013-02-27 15:40:51

+1

如果没有生成R.java,那么您的XML文件或Android清单或项目构建路径中存在问题。问题标签*应该*列出这些,但是如果没有,请检查左侧的文件导航器以查找文件夹或文件上的红色十字。 – 2013-02-27 15:57:37

+0

正如你所说,''应该',但在我的情况不是。 – 2013-07-18 13:37:12

2

如何定位这些错误,提供Eclipse不显示呢?

通常,Eclipse 确实显示它们。这些错误将出现在资源或清单中,通常在软件包管理器中的文件图标上用红色的X标记表示。通常,控制台还会包含有关错误的日志消息。

推动来推,你可以做一个命令行构建,看看有什么报告。

+0

正如我对Raghav Sood所说的,错误日志显示错误“R无法解析为变量”,这不是真正的错误我正在寻找 – WhiskThimble 2013-02-27 15:50:40

+0

@WhiskThimble:我不知道你认为“错误日志”是什么。导致“R”问题的错误通常出现在Eclipse Package Manager(红色X徽章)和Eclipse控制台中,正如我在答案中所指出的那样。 – CommonsWare 2013-02-27 16:45:04

+0

@DídacPérez:如果您花时间阅读答案,可以考虑按照答案中的说明进行操作,包括查看控制台并运行命令行构建。 – CommonsWare 2013-07-18 13:40:38

1

如果您的/res文件夹或其他XML文件有问题,Eclipse将不会生成R.java文件。

我建议您检查该文件夹。

+0

有没有办法知道错误在哪里res? Eclipse应该能够本地化,不是吗? – WhiskThimble 2013-02-27 15:55:13

+0

按照Raghav Sood的指示。我不能说更好! – VinceFR 2013-02-27 17:11:01

0

如果清洁不工作,没有比缺少R.java重新启动Eclipse的其他错误。

File Menu->restart

+0

这不是关于Eclipse的问题(或者我认为它不是)。清洁似乎工作得很好,但R.java不会再生。 如果你想知道,我反正重新启动它,但没有任何变化;-) – WhiskThimble 2013-02-27 15:54:14

0

发现的问题,但无法弄清楚如何简单地找到它。我在复制过去的另一个复制过程中一致地删除了这一行< string name="action_settings">Settings< /string>

不知道它用于什么,但Eclipse没有在错误日志中显示,也没有在我查找的任何地方显示。

非常感谢大家的帮助,希望我不会再遇到类似的问题!

0

1)查看Package Explorer树中的xml文件是否具有错误图标(如果存在),修复错误并生成R-class。

示例提示:FILL_PARENT在API级别8中重命名为MATCH_PARENT;所以如果你的目标是平台2.1(api 7),把所有的发生改回“fill_parent”

2)如果你添加了“import android.R;”试图做一个快速修复,删除该行

3)检查你的AndroidManifest.xml文件,看包名是否正确。如果您复制了一个示例,很可能这是错误的,并且是您的问题的根源。

4)我遇到了同样的问题。我没有任何说明“import something.R”的行。清洁和重建也没有解决问题。

原来是因为布局xml文件的名称。这些文件只能包含小写字母,数字或下划线。当我将文件名(以及引用它的所有内容)从myLayout.xml更改为my_layout.xml时,一切正常。

5)我刚刚有这个问题。这是因为我有一个冗余的菜单资源引用了一个不存在的字符串。删除菜单XML和后面传来R.

0

我是收到这个错误,我更新了SDK工具和包后。我认为更新没有正常工作,经过很多头挠,我只是尝试使用SDK管理器工具再次更新SDK包,然后一切正常。