Android: die Verwendung von SVG in res führt zu Fehler: “der name Der Datei muss am Ende .xml-oder .png"
Ich gerade aktualisiert Android Studio 1.2.1.1 und nun gradle habe Probleme mit svg im Ordner meine Ressourcen. Ich war immer mit SVGs mit kein problem, und ich hoffe, Sie werden zu "dürfen" in die Zukunft.
:app:mergeDebugResources
:app:mergeDebugResources FAILED
/home/petergriffin/folder1/another-app/MyAwesome-App/app/src/main/res/drawable-hdpi/logo.svg
Error:Error: The file name must end with .xml or .png
Error:Execution failed for task ':app:mergeDebugResources'.
> /home/petergriffin/folder1/another-app/MyAwesome-App/app/src/main/res/drawable-hdpi/logo.svg: Error: The file name must end with .xml or .png
Information:BUILD FAILED
Irgendwelche Ideen, wie lösen ?
- Während SVGs als Grundlage für drawable-Ressourcen angekündigt wurde auf der Google I|O 2015 gestern, AFAIK es erfordert Android Studio 1.3. Es gibt Drittanbieter-Gradle-plugins, bieten sich die Umwandlung von SVGs zu drawables. Darüber hinaus, ich bin mir nicht bewusst, dass SVGs waren immer legal drawable Ressource-Dateien.
- Danke, aber ich habe es versucht mit Android Studio 1.3+ aber es hat nicht geholfen. Ich natürlich reinigen Sie das Projekt ein paar mal, nichts. Ich hatte nie Probleme mit SVGs auch in den frühen Tagen von Android Studio.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gleiche problem mit webp-Dateien in die drawable Ressource-Verzeichnis.
Den neuesten gradle-plugin (v1.2.3) ist nicht zu erkennen, einige Bild-Formate, die verwendet, um die Arbeit vor. Ich habe nicht das Problem, wenn ich wechseln Sie zurück zu v1.2.2
UPDATE: Gegeben, dass dieses feature wurde behoben, sollten Sie ein upgrade auf die neueste gradle plugin-Version statt der Rückkehr.
Können Sie ändern Sie die version in deinem build.gradle durch die Einstellung:
SVG-Dateien werden nicht unterstützt von Android drawables. Selbst wenn man Ihnen gibt, das system kann nicht dekodiert werden, als Sie erwarten würden. Stattdessen versuchen Sie, Sie in
src/main/res/raw
odersrc/main/assets
Ordner und laden Sie Sie entsprechend (über eine externe Bibliothek). Die meisten Menschen verwechseln, SVG und Vektor-drawables, Sie sind nicht die gleiche Sache. Vektor-drawables verwenden SVG-kompatiblen Pfad mini-Sprache, aber das ist über es.Den aktuellen akzeptierte Lösung ist, wieder zurück auf eine archaische version des Gradle-plugin, das ist kontraproduktiv in den meisten Fällen. Das tools-team investiert viel Aufwand in den build viel besser (es ist wirklich krass).
Statt zurücksetzen, sollten Sie ziehen Sie nach vorne zu
1.5.0
(stabil für eine Weile jetzt) und hinzufügenandroid.disableResourceValidation=true
in Ihregradle.properties
Datei (befindet sich normalerweise im root-Projekt nebensettings.gradle
) so aktivieren Sie die pre-1.2.2 Verhalten.Weitere Infos finden Sie unter http://b.android.com/192493
Innerhalb von Android, die Sie verwenden sollten (XML), Vektor-Drawable-Dateien (Sie enthalten die SVG-Informationen in der XML, details: https://developer.android.com/training/material/drawables.html#VectorDrawables).
Vektor Drawables heruntergeladen werden können, die aus diesem repository: https://github.com/google/material-design-icons. Suchen Sie den Ordner namens drawable-anydpi-v21 innerhalb der icon-Verzeichnisse. Dieser Ordner enthält die Vektor-Drawable-Dateien platziert werden, in dem drawable-Verzeichnis Ihrer app.
Beachten Sie, dass das arbeiten mit den Vektor-Drawable-Dateien ist nur für die unterstützten Android 5.0 und höher. In Fall, dass Sie brauchen, um kompatibel zu sein mit <5.0 Android version würde ich empfehlen, diese zu nutzen-Bibliothek: https://github.com/trello/victor
Diese Bibliothek kann verwendet werden, konvertieren von SVG-Dateien, die drawables in verschiedenen Formaten, die während der Kompilierung Ihrer Anwendung. Das erspart Ihnen das erstellen und mantain mdpi/hdpi/xhdpi/xxhdpi Ordner manuell.
In Fall, dass Sie Namen der Vektor-drawable-Dateien und SVG-Dateien ebenso können Sie beide Ansätze nebeneinander.
Fügen Sie den folgenden, um Ihre gradle.Eigenschaften :
das problem weiterhin auf gradle 1.5.
Es scheint, dass die einzige option in der Zukunft ist die Umwandlung von svg-Dateien auf xml-Daten mithilfe von "erstellen von Vektor asset" und wählen Sie svg-Datei option.
raw
oderassets
.gibt es ein problem in android studio 1.5.1 während der Verwendung Körperbau:gradle:1.5.0.bitte geben Sie die Lösung.
Ich habe gerade aktualisiert, Android Studio 1.5.1 und nun gradle habe Probleme mit svg im Ordner meine Ressourcen. Ich war immer mit SVGs mit kein problem, und ich hoffe, Sie werden zu "dürfen" in die Zukunft.