Android: gagal mengonversi @ drawable / picture menjadi drawable

112

Dalam folder drawable saya, saya memiliki beberapa gambar dan semuanya referensi sempurna, tetapi ketika saya mencoba dan menambahkan gambar lagi dengan ukuran yang sama persis di folder yang sama, dan mencoba mereferensikannya, muncul kesalahan "Gagal mengonversi @ drawable / gambar menjadi drawable " . Saya telah mencoba gambar yang sama dengan nama berbeda dan itu terus memberi saya kesalahan itu. Saya juga mencobanya dalam tata letak XML yang berbeda dan hal yang sama. Juga nama gambarnya adalah "jack", "abc", "question_mark" seperti yang Anda lihat ada di aturan ketat karakter apa yang dapat Anda gunakan, dan pesan kesalahan terus muncul. Ada saran bagus tentang cara memperbaiki masalah, terima kasih.

Gagal mengonversi @ drawable / gambar menjadi drawable

Jack Trowbridge
sumber
2
Semua disortir untuk beberapa alasan aneh, tiba-tiba setelah beberapa klik lagi di sekitarnya berfungsi! saran saya jika Anda mendapatkan masalah ini hanya untuk memulai kembali gerhana dan pastikan setiap hal direferensikan dan diberi nama dengan benar.
Jack Trowbridge
2
Terkadang hanya membangun kembali proyek dari awal membantu menyingkirkan masalah SDK Android ini. Saya telah melihat kasus aneh di mana ia menggunakan gambar yang salah untuk semua drawable saya (tidak ada kesalahan, tetapi menggunakan gambar di sebelah gambar yang benar untuk setiap drawable) mungkin merupakan masalah id referensi.
Guillaume
lagi -1 Android, +1 Windows
mihai71
4
Bagi saya itu adalah karakter "-" di tengah nama file. Setelah mengganti nama semuanya berjalan dengan baik di Android Studio.
martin.p

Jawaban:

200

Mulai ulang Eclipse (sayangnya) dan masalahnya akan hilang.

Androliyah
sumber
Menutup dan membuka kembali proyek di Eclipse berhasil untuk saya. Terima kasih Aliyah!
stephen.hanson
Saya memiliki masalah ini dengan drawable-normal-hdpi tetapi ketika gambar saya dalam drawable-hdpi - semuanya baik-baik saja.
Yar
@ DoctororDrive - mungkin masalah Anda sedikit berbeda. apakah kamu masih mengalami kesalahan?
Androliyah
4
cukup lucu bahwa masalah ini ada di gerhana dan studio android
Mohammad AbuShady
3
proyek penutupan / pembukaan kembali tidak berhasil untuk saya, tetapi keluar / memulai ulang studio android berhasil. terima kasih Aliyah.
tmr
143

Periksa juga apakah nama sumber daya mengandung karakter ilegal (bagi saya itu adalah "-" pada gambar-saya)

perumer
sumber
Paket ikon Android sendiri berisi nama file seperti 10-device-access-alarms.png, yang tersedak Eclipse! Terima kasih.
Noumenon
12
Studio Android juga tersedak nama file tersebut. Mengganti nama menjadi garis bawah memperbaikinya untuk saya.
Cypress Frankenfeld
Bagi saya itu adalah karakter luar angkasa ""!
Efreeto
luar angkasa adalah penyebab dalam kasus saya
Saju
itu adalah "-" untuk saya juga, anehnya studio android tidak menandai benda ini ...
Haseeb Zulfiqar
55

Jika memulai ulang Eclipse tidak memperbaiki masalah, pastikan nama gambar diawali dengan karakter alfa (non-numerik).

GregM
sumber
4
Terima kasih. Android membuat variabel id drawable di file R dengan nama drawable. Misalnya, jika file dimulai dengan angka, variabel akan dimulai dengan angka dan ini tidak diperbolehkan pada bahasa Java.
momo
9
Pastikan juga tidak mengandung tanda hubung (-); misalnya 'mic-back' tidak valid, 'mic_back' tidak apa
Markus
Ini adalah masalahku. Semua ikon dalam paket di situs web Android memiliki nomor terdepan.
theblang
Apakah itu harus png? Saya mencoba menggunakan jpg.
IgorGanapolsky
28

file nameharus berisi hanya abc...xyz 012...789 _ . dalam folder Resources.

misalnya:

my-image.png adalahFalse !
MyImage.png adalahFalse !
image.png saya adalahFalse !
...
...

my-xml.xml adalahFalse !
MyXml.xml adalahFalse !
xml.xml saya adalahFalse !
...
...

Mahdi-bagvand
sumber
25

Ini karena nama Gambar Anda mengandung simbol "-". satu-satunya karakter yang diizinkan adalah [a-zA-Z0-9_.]

Terima kasih

Kiba
sumber
1
Huruf besar tidak valid. Jika Anda menggunakannya, Android Studio akan memberikan kesalahan ini: Kesalahan: Eksekusi gagal untuk tugas ': app: mergeDebugResources'. > Kesalahan: Nama file tidak valid: hanya boleh berisi huruf kecil dan angka ([a-z0-9_.])
LightMan
5

Saya memiliki masalah yang sama di Android Studio. Tidak perlu memulai ulang IDE, cukup tutup dan buka kembali proyek dan itu akan menyelesaikan masalah. (Pastikan src adalah input yang benar).

Yen NQ
sumber
Membangun kembali proyek juga akan berhasil.
Mike
Saya melakukan File -> Invalidate Caches / Restart ..., yang bekerja dengan baik (dan mungkin berlebihan).
SMBiggs
3

Di Android Studio, nama file resource (gambar) Anda tidak boleh dimulai NUMERICdan tidak boleh berisi BIGkarakter apa pun . Untuk mengatasi masalah Anda, lakukan seperti yang dikatakan Aliyah. Mulai ulang IDE Anda. Ini juga memecahkan masalah saya.

Sabri Meviş
sumber
2

Sederhanakan nama file Anda, sepertinya ada karakter khusus dalam nama file yang membuatnya tersendat. misalnya chaange "my-main-header.png" menjadi "header1.png" tidak yakin mengapa, tetapi berhasil

raymond
sumber
2
Itu karena nama file sumber daya diubah menjadi pengenal sumber daya R.javadan -bukan karakter yang valid untuk pengenal.
laalto
2

Untuk Android Studio, saya mengalami masalah yang sama. Itu disebabkan oleh menjalankan dari linux, artinya file tidak secara otomatis menerima ekstensi. Dengan menambahkan .png secara manual di akhir nama file, ia dapat mengenali jenis file dan memuatnya sesuai.

Android studio mungkin akan menimbulkan masalah jika Anda mencoba mengubah nama di dalam proyek, karena android akan segera mencoba untuk meregenerasi R. Saya tidak tahu persis apa yang menyebabkan kesalahan karena itu menunjuk ke beberapa baris kode yang tampaknya acak, yang dalam kasus saya adalah komentar.

Solusi untuk itu: Hapus dari drawable, ganti nama di luar proyek dan masukkan lagi.

G_V
sumber
1

Ini bahkan bisa lebih sepele daripada yang disarankan poster lain: jika Anda memiliki banyak proyek, pastikan Anda tidak membuat file layout xml di proyek yang salah.

Setelah dibuat, file akan terbuka secara otomatis sehingga ini mungkin luput dari perhatian dan Anda menganggapnya dalam proyek yang benar. Jelas, semua referensi ke sumber daya yang dapat digambar atau sumber daya lainnya tidak valid.

Dan ya, saya sebodoh itu. Saya akan menutup proyek yang tidak digunakan mulai sekarang :)

pengguna1883611
sumber
1

Saya pikir saya menemukan cara untuk membuatnya berfungsi tanpa memulai ulang Eclipse, atau tanpa menutup proyek (itu berhasil untuk saya):

  • ganti nama file gambar di bawah res / di Eclipse -> pilih file dan tekan F2 (untuk saya itu res / drawable-mdpi / bush-landscape.jpg -> diubah menjadi bush.jpg)

  • Build Project (masih akan menunjukkan kesalahan)

  • ubah gambar di mana Anda menggunakannya (saya ubah di Graphical Layout. Bagi saya tempatnya adalah LinearLayout / Background / bush-landscape -> ubah "bush-landscape" menjadi "bush")

  • Proyek Bangun

Alex
sumber
1

Nama Gambar saya adalah 21.jpg. Saya menamainya sebagai abc.jpg dan berhasil. Jadi Pastikan nama gambar Anda tidak dimulai dengan angka. Namun semua jawaban di atas juga diterima.

Abhishek Kaushik
sumber
1

Jika Anda memiliki konvensi penamaan yang benar, maka buka File -> Invalidate Caches / Restart ..

Dan tekan Invalidate Caches / Restart ..

Ini membantu dalam kasus saya.

Amit Upadhyay
sumber
0

Dalam kasus saya, saya memiliki gambar di folder yang berbeda (dengan nama yang sama) untuk mendukung berbagai dpi dan ukuran perangkat. Semua gambar memiliki nama yang sama kecuali salah satunya. Itu salah ketik dan begitu saya menamainya seperti nama lain, itu menyelesaikan masalah saya.

Hamid
sumber