Android:无法将@ drawable / picture转换为drawable

时间:2012-01-15 23:19:17

标签: android image android-layout reference drawable

在我的drawable文件夹中,我有一些图像并且它们都是完美的参考,但是当我尝试在同一文件夹中添加具有完全相同大小的任何更多图像并尝试引用它时,标记错误“无法将@ drawable / picture转换为drawable”。我尝试使用不同名称的相同图像,它只是一直给我错误。我也尝试过不同的XML布局和相同的东西。此外,图片的名称一直是“jack”,“abc”,“question_mark”,你可以看到严格按照你可以使用的字符的规则,仍然会出现错误信息。对于如何解决问题,任何建议都会很棒,谢谢。

  

无法将@ drawable / picture转换为drawable

14 个答案:

答案 0 :(得分:200)

重启Eclipse(不幸的是),问题就会消失。

答案 1 :(得分:144)

同时检查资源名称是否包含任何非法字符(对我而言,我的图像中是“ - ”)

答案 2 :(得分:55)

如果重新启动Eclipse无法解决问题,请确保图像名称以字母字符(非数字)开头。

答案 3 :(得分:28)

file name必须仅在Resources文件夹中包含abc...xyz 012...789 _ .

代表

my-image.png False
MyImage.png False
my image.png False
...
...

my-xml.xml False
MyXml.xml False
我的xml.xml False
...
...

答案 4 :(得分:25)

这是因为您的图片名称包含“ - ”符号。唯一允许的字符是 [A-ZA-Z0-9 _]

由于

答案 5 :(得分:5)

我在Android Studio上遇到同样的问题。无需重新启动IDE,只需关闭并重新打开项目即可解决问题。 (确保src是相关的输入)。

答案 6 :(得分:3)

在Android Studio中,您的资源(图像)文件名不能以NUMERIC开头,并且不能包含任何BIG个字符。要解决你的问题,请像Aliyah说的那样。只需重新启动IDE即可。这也解决了我的问题。

答案 7 :(得分:2)

简化文件的名称,似乎文件名中的任何特殊字符都会使其打嗝。例如chaange“my-main-header.png”到“header1.png”不知道为什么,但它有效

答案 8 :(得分:2)

对于Android Studio,我遇到了同样的问题。它是由linux运行引起的,这意味着文件没有自动收到扩展名。通过手动将.png添加到文件名的末尾,它可以识别文件类型并相应地加载。

如果你试图在项目中重构重命名,那么Android工作室可能会出现异议,因为android会尝试立即重新生成R.我不确切地知道是什么导致错误,因为它指向一些看似随机的代码行,在我的例子中是一个注释。

解决方案:从drawable中删除,在项目外重命名并再次将它们放入。

答案 9 :(得分:1)

它可能比其他海报建议的更简单:如果你有多个项目,请确保你没有在错误的项目中创建xml布局文件。

创建后,文件将自动打开,因此可能会被忽视,您认为它位于正确的项目中。显然,对drawables或其他资源的任何引用都是无效的。

是的,我是那么愚蠢。从现在开始我将关闭所有未使用的项目:)

答案 10 :(得分:1)

我想我找到了一种方法,可以在不重启Eclipse的情况下使用它,或者不关闭项目(它对我有用):

  • 在Eclipse中的res /下重命名图像文件名 - >选择文件并按F2(对我来说它res / drawable-mdpi / bush-landscape.jpg - >更改为bush.jpg)

  • 构建项目(它仍会显示错误)

  • 更改您使用它的图像(我在图形布局中进行了更改。对我来说,这个地方是LinearLayout / Background / bush-landscape - >将“bush-landscape”更改为“bush”)

    < / LI>
  • 构建项目

答案 11 :(得分:1)

我的图片名称是21.jpg。我将其重命名为abc.jpg并且有效。因此,请确保您的图片名称不以数字开头。然而,所有上述答案也被接受。

答案 12 :(得分:1)

如果你有正确的命名惯例,那么只需转到文件 - &gt; 使缓存无效/重新启动..

然后按使缓存无效/重新启动..

这对我的情况有帮助。

答案 13 :(得分:0)

在我的情况下,我在不同文件夹(具有相同名称)中有一个图像,用于支持不同的dpi和设备大小。所有图像都有相同的名称,除了其中一个。这是错误的,一旦我像其他名字一样重命名,它解决了我的问题。