问题" 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.
(无法发布图片,因为我在这附近是新的......)
答案 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
。祝你好运。