添加图像后,R无法解析为变量

时间:2014-04-03 12:47:57

标签: java android

问题" R无法解析为变量"

我开始了一个新项目,一切运行正常,但随后我将2个图像添加到文件夹drawable-hdpi中,并且R上的错误开始出现。

我更新了SDK,但仍然无效。

[2014-04-03 14:21:57 - Smörgåsbord] res\drawable-hdpi\qr.scanner.pressed.png:0:                      error: Resource entry qr is already defined.
[2014-04-03 14:21:57 - Smörgåsbord] res\drawable-hdpi\qr.scanner.normal.png:0: Originally defined here.
[2014-04-03 14:24:54 - Smörgåsbord] res\drawable-hdpi\qr.scanner.pressed.png:0:                   error: Resource entry qr is already defined.
[2014-04-03 14:24:54 - Smörgåsbord] res\drawable-hdpi\qr.scanner.normal.png:0: Originally defined here.
[2014-04-03 14:27:26 - Smörgåsbord] res\drawable-hdpi\qr.scanner.pressed.png:0: error: Resource entry qr is already defined.

(无法发布图片,因为我在这附近是新的......)

5 个答案:

答案 0 :(得分:1)

从您的图片名称中移除.并替换为_符号,然后您的图片将如下所示:

qr_scanner_pressed.png

答案 1 :(得分:0)

ctrl+b

清洁项目或构建项目

答案 2 :(得分:0)

找不到R课程的原因是因为您的资源错误导致Android SDK无法生成。

Android SDK不喜欢文件名中的点. - 除了分隔扩展名。它占用了第一个点的名称部分,并在生成它时尝试将其用作R中成员变量的名称。在你的情况下,你有

qr.scanner.pressed.png
qr.scanner.normal.png

Android仅参与第一个点,并尝试在R.java

中创建
public final static int qr = xxxxxxx;   //this is for qr.scanner.pressed.png
public final static int qr = yyyyyyy;   //this is for qr.scanner.normal.png

编译时会产生错误 - 正如您在问题中发布的那样 - 因此,R课程未生成且无法找到。

正如@HarshitRathi所说,将文件重命名为_而不是点:

qr_scanner_pressed.png
qr_scanner_normal.png

然后刷新resources文件夹(在Eclipse中的树中选择它并按F5) - 你就可以了。

答案 3 :(得分:0)

图片或任何资源不应包含特殊字符,空格或大写字母,也不得以数字开头。

所有这些限制都是因为这个文件名甚至给定的ID都将被解析为生成的类R.java文件中的声明变量。

因此,在您的情况下,您应该想象一下,图像文件名是否有效,可以声明为变量名。

答案 4 :(得分:0)

图片的扩展名不应为大写。如果您的图片名称以.PNG结尾,请将其更改为.png。祝你好运。