Android: no se pudo convertir @ drawable / picture en un dibujable

112

En mi carpeta dibujable tengo algunas imágenes y todas hacen referencia a la perfección, pero cuando trato de agregar más imágenes con el mismo tamaño exacto en la misma carpeta, e intento hacer referencia a ella, aparece un error "No se pudo convertir @ dibujable / imagen en dibujable " . He probado la misma imagen con un nombre diferente y sigue dándome ese error. También lo he probado en un diseño XML diferente y lo mismo. Además, el nombre de la imagen ha sido "jack", "abc", "question_mark", como puede ver, hay estrictamente en las reglas de qué caracteres puede usar, y el mensaje de error sigue apareciendo. Cualquier consejo sería fantástico sobre cómo solucionar el problema, gracias.

Error al convertir @ dibujable / imagen en dibujable

Jack Trowbridge
fuente
2
Todo ordenado por alguna extraña razón, ¡de repente después de unos pocos clics más funciona! Mi consejo, si tiene este problema, es simplemente reiniciar eclipse y asegurarse de que todo esté referenciado y nombrado correctamente.
Jack Trowbridge
2
A veces, simplemente reconstruir el proyecto desde cero ayuda a deshacerse de estos problemas del SDK de Android. He visto casos extraños en los que usó imágenes incorrectas para todos mis elementos de diseño (sin error, pero el uso de la imagen junto a la correcta para cada elemento de diseño) probablemente sea un problema de identificación de referencia.
Guillaume
de nuevo -1 Android, +1 Windows
mihai71
4
Para mí, era el carácter "-" en el medio del nombre del archivo. Después de cambiar el nombre, todo salió bien en Android Studio.
martin.p

Respuestas:

200

Reinicie Eclipse (desafortunadamente) y el problema desaparecerá.

Androliyah
fuente
Cerrar y reabrir el proyecto en Eclipse funcionó para mí. ¡Gracias Aliyah!
stephen.hanson
Ia tuve este problema con drawable-normal-hdpi pero cuando tengo mis imágenes en drawable-hdpi, todo está bien.
Yar
@DoctororDrive: quizás su problema fue ligeramente diferente. ¿todavía tienes el error?
Androliyah
4
Es bastante gracioso que este problema exista tanto en Eclipse como en Android Studio
Mohammad AbuShady
3
cerrar / reabrir el proyecto no funcionó para mí, pero salir / reiniciar Android Studio sí funcionó. gracias Aliyah.
tmr
143

También verifique si el nombre del recurso contiene caracteres ilegales (para mí era un "-" en mi imagen)

perumer
fuente
El paquete de iconos de Android contiene nombres de archivo como 10-device-access-alarms.png, ¡con el que Eclipse se atraganta! Gracias.
Noumenon
12
Android Studio también se ahoga con esos nombres de archivo. Cambiar el nombre a guiones bajos me lo arregló.
Cypress Frankenfeld
¡Para mí fue el carácter espacial ""!
Efreeto
el espacio fue el culpable en mi caso
Saju
fue "-" para mí también, curiosamente Android Studio no marcó en rojo esta cosa ...
Haseeb Zulfiqar
55

Si reiniciar Eclipse no corrige el problema, asegúrese de que el nombre de la imagen comience con un carácter alfabético (no numérico).

GregM
fuente
4
Gracias. Android crea la variable de identificación dibujable en el archivo R con el nombre dibujable. Por ejemplo, si el archivo comienza con un número, la variable comenzará con un número y esto no está permitido en el lenguaje Java.
momo
9
También asegúrese de que no contenga guiones (-); por ejemplo, 'mic-back' no es válido, 'mic_back' está bien
Markus
Este era mi problema. Todos los íconos del paquete en el sitio web de Android tienen números iniciales.
theblang
¿Tiene que ser un png? Estoy tratando de usar jpg.
IgorGanapolsky
28

file namedebe contener solo abc...xyz 012...789 _ . en la carpeta Recursos.

por ejemplo:

my-image.png esFalse !
MyImage.png esFalse !
mi image.png esFalse !
...
...

my-xml.xml esFalse !
¡MyXml.xml esFalse !
mi xml.xml esFalse !
...
...

Mahdi-bagvand
fuente
25

Esto se debe a que el nombre de la imagen contiene el símbolo "-". los únicos caracteres permitidos son [a-zA-Z0-9_.]

Gracias

Kiba
fuente
1
Las letras mayúsculas no son válidas. Si los usa, Android Studio le dará este error: Error: Error de ejecución para la tarea ': app: mergeDebugResources'. > Error: nombre de archivo no válido: debe contener solo letras minúsculas y dígitos ([a-z0-9_.])
LightMan
5

Tengo el mismo problema en Android Studio. No es necesario reiniciar el IDE, solo cierre y vuelva a abrir el proyecto y eso resolverá el problema. (Asegúrese de que src sea una entrada correcta).

Yen NQ
fuente
La reconstrucción del proyecto también lo hará.
Mike
Hice Archivo -> Invalidar cachés / Reiniciar ..., que funcionó también (y probablemente sea excesivo).
SMBiggs
3

En Android Studio, el nombre del archivo de recursos (imágenes) no puede comenzar con NUMERICy no puede contener ningún BIGcarácter. Para resolver su problema, haga lo que dijo Aliyah. Simplemente reinicie su IDE. Esto también resolvió mi problema.

Sabri Meviş
fuente
2

Simplifique el nombre de su archivo, parece ser que cualquier carácter especial en el nombre del archivo lo hace hipo. por ejemplo cambiar "my-main-header.png" a "header1.png" no estoy seguro de por qué, pero funciona

Raymond
fuente
2
Esto se debe a que los nombres de los archivos de recursos se convierten en identificadores de recursos en R.javay -no es un carácter válido para los identificadores.
laalto
2

Para Android Studio tuve el mismo problema. Fue causado por la ejecución desde Linux, lo que significa que los archivos no recibieron automáticamente una extensión. Al agregar manualmente .png al final de los nombres de archivo, podría reconocer el tipo de archivo y cargar en consecuencia.

Android Studio podría lanzar un ataque de hissy si intenta refactorizar el cambio de nombre dentro del proyecto, porque Android intentará regenerar R inmediatamente. No sé exactamente qué causa el error, ya que apunta a una línea de código aparentemente aleatoria, que en mi caso fue un comentario.

Solución a eso: elimine de dibujable, cambie el nombre fuera del proyecto y tírelos nuevamente.

G_V
fuente
1

Puede ser incluso más trivial de lo que sugirieron los otros carteles: si tiene varios proyectos, asegúrese de no haber creado el archivo de diseño xml en el proyecto incorrecto.

Después de la creación, el archivo se abrirá automáticamente, por lo que esto podría pasar desapercibido y asume que está en el proyecto correcto. Obviamente, cualquier referencia a elementos de diseño u otros recursos no será válida.

Y sí, soy así de estúpido. Cerraré todos los proyectos no utilizados a partir de ahora :)

usuario1883611
fuente
1

Creo que encontré una manera de hacerlo funcionar sin reiniciar Eclipse o sin cerrar el proyecto (funcionó para mí):

  • cambie el nombre del archivo de imagen en res / en Eclipse -> elija el archivo y presione F2 (para mí es res / drawable-mdpi / bush-landscape.jpg -> cambiado a bush.jpg)

  • Construir proyecto (seguirá mostrando error)

  • cambiar la imagen donde la usó (cambié en Diseño gráfico. Para mí, el lugar era LinearLayout / Background / bush-landscape -> cambiado "bush-landscape" a "bush")

  • Proyecto de construcción

Alex
fuente
1

El nombre de mi imagen era 21.jpg. Lo renombré abc.jpg y funcionó. Así que asegúrese de que el nombre de su imagen no comience con un número. Sin embargo, también se aceptan todas las respuestas anteriores.

Abhishek Kaushik
fuente
1

Si tiene las convenciones de nomenclatura correctas, vaya a Archivo -> Invalidar cachés / Reiniciar ..

Y presione Invalidate Caches / Restart ..

Esto ayudó en mi caso.

Amit Upadhyay
fuente
0

En mi caso, tenía una imagen en diferentes carpetas (con el mismo nombre) para admitir diferentes dpi y tamaños de dispositivo. Todas las imágenes tenían el mismo nombre excepto una de ellas. Estaba mal escrito y una vez que lo renombré como otros nombres, resolvió mi problema.

Hamid
fuente