Android: @ drawable / picture konnte nicht in ein drawable konvertiert werden


112

In meinem Zeichenordner befinden sich einige Bilder, die alle perfekt verweisen. Wenn ich jedoch versuche, weitere Bilder mit genau derselben Größe in demselben Ordner hinzuzufügen und darauf zu verweisen, wird ein Fehler angezeigt: "Konvertierung fehlgeschlagen @ Zeichnung / Bild in eine Zeichnung " . Ich habe das gleiche Bild mit einem anderen Namen ausprobiert und es gibt mir immer wieder diesen Fehler. Ich habe es auch in einem anderen XML-Layout und der gleichen Sache versucht. Der Name des Bildes war auch "jack", "abc", "question_mark", wie Sie sehen können, gibt es strenge Regeln für die Zeichen, die Sie verwenden können, und dennoch wird immer wieder die Fehlermeldung angezeigt. Jeder Rat wäre großartig, um das Problem zu beheben, danke.

@ Drawable / picture konnte nicht in ein Drawable konvertiert werden


2
Alles aus irgendeinem seltsamen Grund sortiert, plötzlich funktioniert es nach ein paar weiteren Klicks! Mein Rat, wenn Sie dieses Problem bekommen, ist nur, Eclipse neu zu starten und sicherzustellen, dass alles richtig referenziert und benannt ist.
Jack Trowbridge

2
Manchmal hilft es, das Projekt von Grund auf neu zu erstellen, um diese Android SDK-Probleme zu beseitigen. Ich habe seltsame Fälle gesehen, in denen falsche Bilder für alle meine Zeichen verwendet wurden (kein Fehler, aber die Verwendung des Bildes neben dem richtigen für jedes Zeichen), wahrscheinlich ein Problem mit der Referenz-ID.
Guillaume

wieder -1 Android, +1 Windows
mihai71

4
Für mich war es das Zeichen "-" in der Mitte des Dateinamens. Nach dem Umbenennen ging in Android Studio alles gut.
Martin.p

Antworten:


200

Starten Sie Eclipse (leider) neu und das Problem wird behoben.


Das Schließen und erneute Öffnen des Projekts in Eclipse hat für mich funktioniert. Danke Aliyah!
stephen.hanson

Ich hatte dieses Problem mit drawable-normal-hdpi, aber wenn meine Bilder in drawable-hdpi sind, ist alles in Ordnung.
Yar

@DoctororDrive - vielleicht war dein Problem etwas anders. hast du noch den fehler
Androliyah

4
ziemlich lustig, dass dieses Problem sowohl
Mohammad AbuShady

3
Das Schließen / Wiedereröffnen des Projekts hat bei mir nicht funktioniert, aber das Beenden / Neustarten von Android Studio hat funktioniert. Danke Aliyah.
tmr

143

Überprüfen Sie auch, ob der Ressourcenname unzulässige Zeichen enthält (für mich war es ein "-" in meinem Bild).


Das Android-eigene Icon-Pack enthält Dateinamen wie 10-device-access-alarms.png, an denen Eclipse erstickt! Vielen Dank.
Noumenon

12
Android Studio verschluckt sich auch an diesen Dateinamen. Das Umbenennen in Unterstriche hat es für mich behoben.
Cypress Frankenfeld

Für mich war es das Leerzeichen ""!
Efreeto

Raum war der Schuldige in meinem Fall
Saju

es war auch "-" für mich, seltsamerweise hat Android Studio dieses Ding nicht rot markiert ...
Haseeb Zulfiqar

55

Wenn ein Neustart von Eclipse das Problem nicht behebt, stellen Sie sicher, dass der Bildname mit einem Alpha-Zeichen (nicht numerisch) beginnt.


4
Vielen Dank. Android erstellt die Variable drawable id in der R-Datei mit dem Namen drawable. Wenn die Datei beispielsweise mit einer Zahl beginnt, beginnt die Variable mit einer Zahl, was in der Java-Sprache nicht zulässig ist.
Momo

9
Stellen Sie außerdem sicher, dass keine Bindestriche (-) enthalten sind. zB 'mic-back' ist ungültig, 'mic_back' ist ok
Markus

Das war mein Problem. Alle Symbole im Paket auf der Android-Website haben führende Nummern.
Theblang

Muss es ein PNG sein? Ich versuche, JPGs zu verwenden.
Igor Ganapolsky

28

file namedarf nur abc...xyz 012...789 _ . im Ressourcenordner enthalten sein .

zum Beispiel:

my-image.png istFalse !
MyImage.png istFalse !
mein image.png istFalse !
...
...

my-xml.xml istFalse !
MyXml.xml istFalse !
meine xml.xml istFalse !
...
...


25

Dies liegt daran, dass Ihr Bildname das Symbol "-" enthält. Die einzigen zulässigen Zeichen sind [a-zA-Z0-9_.]

Vielen Dank


1
Großbuchstaben sind ungültig. Wenn Sie sie verwenden, gibt Android Studio den folgenden Fehler aus: Fehler: Ausführung für Aufgabe ': app: mergeDebugResources' fehlgeschlagen. > Fehler: Ungültiger Dateiname: darf nur Kleinbuchstaben und Ziffern enthalten ([a-z0-9_.])
LightMan

5

Ich habe das gleiche Problem unter Android Studio. Sie müssen die IDE nicht neu starten. Schließen Sie das Projekt und öffnen Sie es erneut. Dadurch wird das Problem behoben. (Stellen Sie sicher, dass die src korrekt eingegeben wurden).


Das Projekt wird auch neu erstellt.
Mike

Ich habe File -> Invalidate Caches / Restart ... gemacht, was ebenfalls funktioniert hat (und wahrscheinlich übertrieben ist).
SMBiggs

3

In Android Studio kann der Name Ihrer Ressourcendatei (Bilder) nicht beginnen NUMERICund darf kein BIGZeichen enthalten . Um Ihr Problem zu lösen, tun Sie, was Aliyah sagte. Starten Sie einfach Ihre IDE neu. Dies löste auch mein Problem.


2

Vereinfachen Sie den Namen Ihrer Datei, scheint zu sein, dass alle Sonderzeichen im Dateinamen es Schluckauf machen. Zum Beispiel "my-main-header.png" in "header1.png" ändern, nicht sicher warum, aber es funktioniert


2
Dies liegt daran, dass Ressourcendateinamen in Ressourcenkennungen in konvertiert werden R.javaund -kein gültiges Zeichen für Kennungen sind.
Laalto

2

Für Android Studio hatte ich das gleiche Problem. Dies wurde durch die Ausführung unter Linux verursacht, was bedeutet, dass die Dateien nicht automatisch eine Erweiterung erhalten haben. Durch manuelles Hinzufügen von .png am Ende der Dateinamen konnte der Dateityp erkannt und entsprechend geladen werden.

Android Studio kann einen zischenden Anfall verursachen, wenn Sie versuchen, die Umbenennung innerhalb des Projekts umzugestalten, da Android versucht, R sofort zu regenerieren. Ich weiß nicht genau, was den Fehler verursacht, da er auf eine scheinbar zufällige Codezeile verweist, die in meinem Fall ein Kommentar war.

Lösung dafür: Aus zeichnbar löschen, außerhalb des Projekts umbenennen und erneut einwerfen.


1

Es kann noch trivialer sein als auf den anderen Postern vorgeschlagen: Wenn Sie mehrere Projekte haben, stellen Sie sicher, dass Sie die XML-Layoutdatei nicht im falschen Projekt erstellt haben.

Nach der Erstellung wird die Datei automatisch geöffnet, sodass dies möglicherweise unbemerkt bleibt und Sie davon ausgehen, dass sie sich im richtigen Projekt befindet. Verweise auf Drawables oder andere Ressourcen sind natürlich ungültig.

Und ja, ich bin so dumm. Ich werde von nun an alle nicht verwendeten Projekte schließen :)


1

Ich glaube, ich habe einen Weg gefunden, es zum Laufen zu bringen, ohne Eclipse neu zu starten oder ohne das Projekt zu schließen (es hat bei mir funktioniert):

  • Benennen Sie den Namen der Bilddatei unter res / in Eclipse um -> wählen Sie die Datei aus und drücken Sie F2 (für mich ist es res / drawable-mdpi / bush-Landschaft.jpg -> geändert in bush.jpg)

  • Projekt erstellen (es wird immer noch ein Fehler angezeigt)

  • Bild ändern, wo Sie es verwendet haben (Ich habe das grafische Layout geändert. Für mich war der Ort LinearLayout / Hintergrund / Buschlandschaft -> "Buschlandschaft" in "Busch" geändert)

  • Projekt erstellen


1

Mein Bildname war 21.jpg. Ich habe es in abc.jpg umbenannt und es hat funktioniert. Stellen Sie also sicher, dass Ihr Bildname nicht mit einer Nummer beginnt. Alle oben genannten Antworten werden jedoch ebenfalls akzeptiert.


1

Wenn Sie die richtigen Namenskonventionen haben, gehen Sie einfach zu Datei -> Caches ungültig machen / neu starten.

Und drücken Sie Invalidate Caches / Restart ..

Das hat in meinem Fall geholfen.


0

In meinem Fall hatte ich ein Bild in verschiedenen Ordnern (mit demselben Namen) zur Unterstützung verschiedener dpi- und Gerätegrößen. Alle Bilder hatten bis auf eines den gleichen Namen. Es wurde falsch geschrieben und nachdem ich es wie andere Namen umbenannt hatte, wurde mein Problem behoben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.