2012-01-15 78 views
112

在我的可繪製文件夾中,我有幾張圖片,它們都引用完美,但是當我嘗試在同一文件夾中添加具有完全相同尺寸的圖片時,以及嘗試引用它,標誌着一個錯誤「無法將@ drawable /圖片轉換爲可繪製」。我用不同的名字嘗試過相同的圖像,它只是不停地給我那個錯誤。我也嘗試過使用不同的XML佈局和相同的東西。此外,圖片的名稱是「jack」,「abc」,「question_mark」,您可以看到,嚴格按照您可以使用哪些字符的規則進行操作,並且錯誤消息仍然出現。任何建議將是如何解決這個問題很好,謝謝。Android:無法將@ drawable /圖片轉換爲可繪製

Failed to convert @drawable/picture into a drawable

+2

所有排序爲一些奇怪的原因,突然之後,點擊幾下周圍的作品!我的建議,如果你得到這個問題只是重新啓動日食,並確保每一件事都被引用和命名正確。 – 2012-01-15 23:45:42

+2

有時只是從頭開始重建項目有助於擺脫這些Android SDK問題。我已經看到了奇怪的情況,它爲我的所有繪圖工具使用了錯誤的圖像(沒有錯誤,但是在每個drawable中使用正確的圖像旁邊的圖像)可能是一個引用id問題。 – Guillaume 2012-01-16 00:46:51

+0

再次-1 Android,+1 Windows – mihai71 2014-02-26 15:48:55

回答

200

重新啓動Eclipse(不幸),問題就會消失。

+1

偉大的工程...它解決了我的問題..謝謝@Aliyah – 2012-07-10 07:45:35

+0

在Eclipse中關閉和重新打開項目爲我工作。謝謝Aliyah! – 2012-12-30 21:18:24

+0

Ia有drawable-normal-hdpi這個問題,但是當我的圖像在drawable-hdpi中時 - 一切正常。 – Yar 2013-02-08 16:51:21

55

如果重新啓動Eclipse無法解決問題,請確保圖像名稱以字母字符(非數字)開頭。

+3

非常感謝。我總是開始懷疑爲什麼地球上存在這樣的事情...... – MikkoP 2013-04-13 15:56:50

+4

謝謝。 Android使用可繪製的名稱在R文件中創建可繪製的id變量。例如,如果文件以數字開頭,那麼變量將以數字開頭,這在Java語言中是不允許的。 – momo 2013-06-25 05:52:33

+9

還要確保它不包含破折號( - );例如'mic-back'無效,'mic_back'可以 – Markus 2013-11-04 08:58:43

145

而且檢查資源名稱中包含任何非法字符(對我來說,這是一個「 - 」我的圖像)

+0

Android自己的圖標包包含10-device-access-alarms.png這樣的文件名,Eclipse會扼殺!謝謝。 – Noumenon 2013-05-05 17:06:43

+12

Android工作室也扼制這些文件名。重命名爲下劃線爲我固定它。 – 2013-11-19 02:05:08

+0

哦。我的。神。只是浪費了30分鐘,試圖在Android Studio中弄清楚這一點。謝謝。 – Micro 2015-12-28 22:12:57

2

簡化您的文件的名稱,似乎是文件中的任何特殊字符名稱使它呃逆。例如chaange「我 - 主 - header.png」到「header1.png」不知道爲什麼,但它的工作原理

+2

這是因爲資源文件名轉換爲資源'R.java'和'-'中的標識符不是標識符的有效字符。 – laalto 2013-08-12 17:33:15

28

file name必須包含在資源文件夾只有abc...xyz012...789_.

爲前:

我-image.pngFalse
MyImage.pngFalse
我image.pngFalse
...
...

我-xml.xmlFalse
MyXml.xmlFalse
my xml.xml is False
...
...

+1

是的,這是問題..非常感謝 – bebosh 2015-01-14 10:59:35

1

它可能比其他海報建議更微不足道:如果您有多個項目,請確保您沒有在錯誤的項目中創建xml佈局文件。

創建後,該文件將自動打開,因此可能不會引起注意,並且您認爲該文件位於正確的項目中。顯然任何對drawables或其他資源的引用都是無效的。

是的,我很愚蠢。我從現在開始關閉所有未使用的項目:)

5

我在Android Studio上遇到同樣的問題。無需重啓IDE,只需關閉並重新打開項目即可解決問題。 (確保src是正確的輸入)。

+2

刷新Android Studio預覽窗口爲我工作。 – toobsco42 2014-08-21 20:08:22

+0

重建項目也會這樣做。 – Mike 2014-09-29 18:40:41

+0

我做了文件 - >失效緩存/重新啓動...,這也起作用(可能是矯枉過正)。 – 2015-05-01 20:42:29

1

我想我找到一個辦法把它無需重新啓動Eclipse的工作,或者不關閉的項目(它的工作對我來說):在資源

  • 重命名圖像文件名/在Eclipse - >選擇文件按F2(對我來說RES /繪製-MDPI /布什landscape.jpg - >改爲bush.jpg)

  • 生成項目(它仍然會顯示錯誤)

  • ,你用它

    改變形象(我改變了圖形佈局,對我來說這個地方是李nearLayout /背景/叢林景觀 - >改爲 「叢林景觀」 到 「叢林」)

  • 生成項目

1

我的形象的名字叫21.jpg。我將它重命名爲abc.jpg,它工作。所以請確保您的圖片名稱不是以數字開頭。但以上所有答案也被接受。

3

在Android Studio中,您的資源(圖像)文件名不能以NUMERIC開頭,它不能包含任何BIG字符。要解決你的問題,就像Aliyah說的那樣。只需重新啓動您的IDE。這也解決了我的問題。

25

這是因爲您的圖片名稱包含「 - 」符號。唯一允許的字符是 [A-ZA-Z0-9_]

感謝

+0

謝謝!它對我有用 – 2015-03-18 21:24:57

+1

大寫字母無效。如果你使用它們,Android Studio會出現這樣的錯誤:錯誤:任務':app:mergeDebugResources'的執行失敗。 >錯誤:無效的文件名:只能包含小寫字母和數字([a-z0-9_。]) – LightMan 2015-04-26 16:24:23

+0

yup ...這工作正常;) – 2015-06-02 10:22:16

2

瞭解Android Studio,我有這個同樣的問題。這是由於從linux運行引起的,這意味着文件不會自動接收擴展名。通過手動將.png添加到文件名的末尾,它可以識別文件類型並相應地加載。

如果您嘗試在項目中重構重命名,Android工作室可能會引起一陣噓聲,因爲android會嘗試立即重新生成R。我不知道究竟是什麼導致了錯誤,因爲它指向了一些看似隨機的代碼行,在我的情況下是一條評論。

對此的解決方案:從drawable中刪除,在項目外部重命名並重新放入。

0

在我的情況下,我在不同的文件夾(具有相同的名稱)有一個圖像支持不同的dpi和設備大小。除了其中一個以外,所有圖像都具有相同的名稱這是錯誤的輸入,一旦我將它重命名爲其他名稱,它解決了我的問題。

1

如果你的命名約定正確的,那麼只要到文件 - >的Invalidate緩存/重啓..

而且按的Invalidate緩存/重啓..

這有助於在我的情況。

+0

沒有在我的工作 – 2016-12-28 12:42:43