Ich habe einige Bilder mit dem Format * .png zu meinem drawable-Verzeichnis hinzugefügt und mit den Layouts verknüpft. Aber jedes Mal, wenn ich versuchte, es zu bauen, erscheint ein Fehler
"... Crunching Crunsher ... png fehlgeschlagen"
Folgendes ist die Ausgabe der Konsole:
app:mergeDebugResources
AAPT out(1561599) : No Delegate set : lost message:Done
AAPT out(12956469) : No Delegate set : lost message:Done
AAPT out(20612543) : No Delegate set : lost message:Crunching C:\Dev\StudioProjects\test\Android\app\src\main\res\drawable\bt_meeting_focused.png
AAPT out(11030156) : No Delegate set : lost message:Crunching C:\Dev\StudioProjects\test\Android\app\src\main\res\mipmap-mdpi\ic_launcher.png
AAPT out(11030156) : No Delegate set : lost message:Crunching single PNG file: C:\Dev\StudioProjects\test\Android\app\src\main\res\mipmap- mdpi\ic_launcher.png
AAPT out(11030156) : No Delegate set : lost message: Output file: C:\Dev\StudioProjects\test\Android\app\build\intermediates\res\debug\mipmap-mdpi-v4\ic_launcher.png
AAPT out(11030156) : No Delegate set : lost message:Done
AAPT err(11030156): libpng error: Not a PNG file
AAPT out(20612543) : No Delegate set : lost message:Crunching single PNG file: C:\Dev\StudioProjects\test\Android\app\src\main\res\drawable\bt_meeting_focused.png
AAPT out(20612543) : No Delegate set : lost message: Output file: C:\Dev\StudioProjects\test\Android\app\build\intermediates\res\debug\drawable\b t_meeting_focused.png
AAPT out(20612543) : No Delegate set : lost message:Done
AAPT err(20612543): libpng error: Not a PNG file
AAPT err(1561599): libpng error: Not a PNG file
AAPT err(12956469): libpng error: Not a PNG file
FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> Crunching Cruncher uhr.png failed, see logs
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or -- debug option to get more log output.
BUILD FAILED
Total time: 14.598 secs
Executing tasks: [clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources]
Configuration on demand is an incubating feature.
:app:clean
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportSupportV42220Library
:app:prepareDebugDependencies
:app:compileDebugAidl
:app:compileDebugRenderscript
:app:generateDebugBuildConfig
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources
:app:mergeDebugResources
AAPT out(14080484) : No Delegate set : lost message:Done
AAPT out(9206750) : No Delegate set : lost message:Done
AAPT out(25360025) : No Delegate set : lost message:Done
AAPT err(25360025): libpng error: Not a PNG file
AAPT err(14080484): libpng error: Not a PNG file
AAPT out(6423170) : No Delegate set : lost message:Crunching C:\Dev\StudioProjects\test\Android\app\src\main\res\drawable\anfrage_senden_.png
AAPT err(6423170): libpng error: Not a PNG file
AAPT out(6423170) : No Delegate set : lost message:Crunching single PNG file: C:\Dev\StudioProjects\test\Android\app\src\main\res\drawable\anfrage_senden_.png
AAPT out(6423170) : No Delegate set : lost message: Output file: C:\Dev\StudioProjects\test\Android\app\build\intermediates\res\debug\drawable\a nfrage_senden_.png
AAPT out(6423170) : No Delegate set : lost message:Done
AAPT err(9206750): libpng error: Not a PNG file
Process list not empty
:app:mergeDebugResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> Crunching Cruncher uhr.png failed, see logs
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or -- debug option to get more log output.
BUILD FAILED
Total time: 4.325 secs
Ich habe versucht, das Projekt zu bereinigen, neu zu erstellen, die Abhängigkeiten über "gradlew clean build --refresh-dependencies" aufzufrischen, nichts hat funktioniert. Ich habe die Abhängigkeiten in der Datei build.gradle geprüft, aber es scheint nichts zu einem Fehler zu kommen.
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
compileOptions.encoding = 'windows-1251'
defaultConfig {
applicationId "com.example.benutzer.test"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile 'com.Android.support:support-v4:22.2.0'
}
Haben Sie eine Idee, wo liegt der Fehler? Der Dateipfad ist auch nicht zu lang und immer unter 256 Zeichen, dass auch nicht das Problem: /
Danke im Voraus :)
In meinem Fall wurde der Fehler durch eine PNG-Datei verursacht, die ich dem Zeichnungsordner hinzugefügt habe. Ich hatte die Erweiterung von jpg in png geändert, indem ich den Text (in unzulässiger Weise) geändert und dann als PNG hochgeladen habe.
Dies war das Problem, auf das Android Studio zeigte.
Ich habe dieses Problem behoben, und der Fehler wurde ausgeblendet, indem die Dateierweiterung mithilfe des Tools Paint.NET oder eines anderen Tools (ordnungsgemäß) geändert und anschließend in den zeichnerischen Ordner hochgeladen wurde.
Ich habe dieses Problem behoben, indem ich das Projekt in das äußere Verzeichnis verschoben und es dann erfolgreich kompiliert habe.
Dies lag an dem langen Pfad des Projektverzeichnisses.
Zum Beispiel habe ich das Projekt verschoben von:
D:/Android/Apps/AndroidStudioProject/AppName
zu
D:/Android/AppName
Das liegt daran, dass Sie ein Bild in drawable hinzufügen, das eine Erweiterung wie (.jpg) hat, und Sie haben es geändert oder in einem .png-Format gespeichert (dieser Fehler tritt auf, wenn Sie das Bildformat manuell ändern, ohne ein Editor-Tool zu verwenden).
Android Studio gibt beim Kompilieren des Ressourcenpakets mit AAPT (Android Asset Packaging Tool) einen Fehler aus. Sie müssen also nur einige Bildbearbeitungsprogramme wie GIMP oder Paint verwenden, um die Erweiterung zu speichern entsprechend. Baue dein Projekt neu auf, wenn alles fertig ist.
Beispiel: Öffnen Sie Ihr Bild in Paint (ziehen Sie es mit Drag & Drop, um es zu öffnen) → Menü Datei → Speichern unter → Speichern als Typ → Wählen Sie den gewünschten Typ aus der Dropdown-Liste aus, wie I haben in den folgenden Bildern gezeigt:
Die beste Lösung ist, buildDir in build.gradle zu ändern:
Zum Beispiel:
allprojects {
buildDir = "C:/tmp/${rootProject.name}/${project.name}"
repositories {
jcenter()
}
}
Wiederaufbau und fröhliches Programmieren.
In meinem Fall war die Lösung einfach. Ich habe das gesamte Projekt an einen anderen Ort verschoben, an dem der Pfad kurz ist.
Das Problem wurde durch lange Verzeichnisnamen und Dateinamen verursacht.
In meinem Fall habe ich dieses Problem gelöst, indem ich meine Bibliotheksdatei geändert habe weil ich einen dummen Fehler gemacht habe, zwei verschiedene Versionen derselben Bibliothek hinzuzufügen.
Da dies verschiedene Ursachen haben kann, habe ich folgende Möglichkeiten gefunden, um dieses Problem gemäß dem Problem zu lösen:
Ungleichheit der Ressourcen
Fehlende Attribute, falsche Tags usw. in Ressourcen
Ausgabe in Stilen
Fehlender Name in Stilen
Duplizierung von Ressourcen und Bibliotheken
Manchmal kann es sogar durch Ändern der kompatiblen Bibliothek in build.gradle gelöst werden
Befehl aapt
ausführen
Umbenennen der Erweiterung von .jpg in .png
Einfach mit Hilfe von Clean Project
.
Wenn ich eine 9.png-Datei erstellt habe, verwendete meine ursprüngliche PNG-Datei den Rand, an dem die 9.png-Linie gezeichnet ist, und erstellt eine fehlerhafte 9.png-Datei. Versuchen Sie, einen Rand Ihrer PNG-Datei hinzuzufügen.
Wenn Sie Linux verwenden, versuchen Sie Folgendes:
Sudo apt-get install lib32stdc++6 lib32z1
Es ist von hier .
Dies ist darauf zurückzuführen, dass Ihre PNG-Datei nicht unterstützt wird oder Sie Ihre Datei direkt umbenannt haben.
Führen Sie die folgenden Schritte aus.
Problem gelöst :)
Die beste Antwort gibt es bereits in der Gradle-Ausgabe:
* Try:
Run with --stacktrace option to get the stack trace.
Öffnen Sie das Terminal in Android Studio und führen Sie gradlew :app:mergeDebugResources --stacktrace
. (In meinem Fall war dies die Windows 240-Zeichenbeschränkung), es sollte jedoch auch die Ursache für jedes andere Problem sein.
In meinem Fall glaube ich, dass dieses Problem mit der Länge des Dateipfads zusammenhängt. UNIX- und Windows-Systeme erfordern eine maximale Pfadlänge von 255 bzw. 260 Zeichen. Ich glaube, der Crunch-Prozess schlägt fehl, wenn er einem dynamisch angegebenen Pfad zugewiesen wird. Selbst wenn die zitierten Pfadlängen in der Fehlermeldung kürzer sind als das Limit (meiner waren nur 187 in einer Windows-Build-Umgebung), denke ich, dass das Dienstprogramm crunch intern einen längeren Pfad angeben kann, auch wenn es nur vorübergehend ist.
Sie können feststellen, ob dies die Fehlerquelle ist, indem Sie Ihr Projekt in das Stammverzeichnis der Datei Ihres Dateisystems verschieben und dann eine Neukompilierung durchführen.
Ich habe versucht, Gradle usw. neu zu erstellen, neu zu starten, zu reinigen, zu aktualisieren, usw.
Manchmal kann es durch eine falsche Benennung einer XML- oder Ressourcendatei verursacht werden.
Zumindest für mich wurde dieses Problem gelöst, indem der Name geändert wurde.
Ich habe festgestellt, dass downgrading Gradle build tools auf 1.2.3 mein Problem mit dem Crunching PNG-Fehler gelöst hat, aber bei 1.5.0 bleibt das Problem bestehen.
Datei> Caches ungültig machen/neu starten
Ich habe den Ort der App geändert und auf einen kurzen Pfad kopiert. Sie können das tun, indem Sie einfach Ihr Projekt kopieren und an einem neuen Short-Standort einfügen .. und es hat für mich funktioniert.
Zum Beispiel,
Old_path: c/:user/Android_studio_project/your_app
New_path: c/:your_app
Es scheint ein unangenehmes Problem von Gradle zu sein. Wir haben gerade ein Upgrade von 2.14 auf 3.3 durchgeführt und unser Build-Server konnte nicht mehr bauen (ein lokaler Build in Android Studio hat funktioniert).
Fehler mit zu langem Pfad zeigt zum Beispiel:
C:\Windows\System32\config\systemprofile.gradle\Cache\3.3\scripts-remapped\build_bonsjy48fqq8sotonpgrvhswt\36ejadunoxgw3iugkh95lqw\projedd7e29570ae79482d0308d82f4e346b\classes\build_bonsjy48fqq8sotonpgrvhswt $ _run_closure1 $ _closure8 $ _closure13 $ _closure14 $ _closure15.class
Wir mussten ein lokales Benutzerkonto für den Dienst erstellen, der jahrelang als Systemdienst ausgeführt wurde ... Jetzt wird unter C:\Users ... gespeichert.
Dieses Problem trat auf, als ich meine Bilder (egal ob JPEG oder PNG) manuell in den Zeichenordner kopiert hatte. Es gibt möglicherweise verschiedene Arten von temporären Lösungen für dieses Problem, aber der beste ewige Weg ist die Verwendung des Drawable Importer-Plugins für Android Studio .
Installieren Sie es, indem Sie Folgendes aufrufen: Menü Datei → Einstellungen → Plugins → Durchsuchen der Repositorys → Suche "Drawable". Als erste Option finden Sie den Drawable Importer. Klicken Sie im rechten Fensterbereich auf Installieren.
Verwenden Sie es, indem Sie mit der rechten Maustaste auf den Ordner Drawable resource klicken und dann auf new klicken. Jetzt sehen Sie vier neue Optionen, die am Ende der Liste hinzugefügt wurden. Unter diesen Optionen finden Sie die entsprechende Option. In diesem Fall wäre der "Batch Drawable Import" der Trick.
Ich habe dieses Problem nach der Migration zu Gradle 3.3 unter Windows erhalten (mit gradle-2.14.1 war alles in Ordnung).
Das Problem bestand im Pfad zum Gradle-Build-Cache, der kyrillische Zeichen enthält, wie z
C:\Users\Иван\.Android\build-cache
Also habe ich den Ordner des Benutzers in "Ivan" umbenannt und das Problem war weg.
Ich hatte meine Bilder zu Beginn des Projekts in meinen Zeichnungsordner gelegt, und es würde mir immer diesen Fehler geben und ich würde nie so bauen:
Ich habe keine Ahnung, warum das für mich funktioniert hat, aber es tat es. Viel Glück mit diesem Durcheinander nennen wir Android Studio.
Der Crunching-Prozess ist der Bildvorbereitungsprozess. Dies bedeutet, dass mit Ihren Bilddateien etwas nicht stimmt. In meinem Fall hatte ich eine PNG-Datei, die eigentlich keine PNG-Datei war.
Ich habe alle meine Bilder nach PNG konvertiert und dabei ein sehr einfaches Python-Skript aus dem Bildordner ausgeführt. Alles in allem müssen Sie also nur Folgendes tun:
pip install pillow
Skript ausführen: python script_name.py
import os
from PIL import Image
from_format = (".jpg", ".png", ".bmp")
to_format = "png"
for fn in os.listdir('.'):
if os.path.isfile(fn) and fn.lower().endswith(from_format):
print "Converting File: %s" % fn
im = Image.open(fn)
im.save(fn.split('.')[0] + '.' + to_format, to_format.upper())
Und wenn Sie mehr über das Image-Modul erfahren möchten: http://effbot.org/imagingbook/image.htm
Ich bin auch mit diesem Problem konfrontiert, und es wurde nicht durch eine Neuformatierung des Bildes gelöst, obwohl es sich um ein Bild aus einer Projekt-App von Google handelte, und es wurde nur gelöst von
Die Projektdatei direkt auf die Partition verschieben
Versuch es. Es könnte dir helfen.
Ich leide auch unter dem gleichen Problem. In meinem Fall habe ich das Bild gerade in den zeichnerischen Ordner kopiert, dann zeigt Android Studio den Fehler "Fehler beim Datei-Knacken".
Mein Problem in Bezug auf das Bild nur, weil dieses Bild von einer meiner benutzerdefinierten Kameraanwendung im .png-Format gespeichert wurde. Und zu Testzwecken habe ich es in den Zeichenordner kopiert.
Danach habe ich das Speichern des Bildes als .jpg getestet. Es gab keinen Fehler. Das heißt, die Kamera unterstützt standardmäßig das Format ".jpg".
Schließlich habe ich zwei Dinge realisiert:
Die Kamera unterstützt standardmäßig das Format ".jpg"
Ändern Sie ohne Verwendung von Bildwerkzeugen die Bildformate nicht (auch nicht programmgesteuert).
Für mich ist es, weil eine meiner .png-Dateien tatsächlich eine .psd-Datei ist. Speichern Sie es in eine echte PNG-Datei, und es wurde behoben.
Dieser Fehler wurde für mich aufgrund des Pfads verursacht, in dem sich mein Projekt befand. Es gab ein leeres Feld in einem Ordner, zum Beispiel
Folder\Another Folder\MyAndroidProjects\...
Das Ändern in Folder\AnotherFolder\MyAndroidProjects\...
und die Neusynchronisierung von Gradle löste dies für mich.
Um dieses Problem zu lösen, sollten Sie drawable -> new -> image asset verwenden und Ihre Bilder hinzufügen. Sie finden dann den Mipmap-Ordner, der Ihre Bilder enthält, und Sie können ihn unter @ mibmab/img verwenden.
In meinem Fall habe ich die Lösung in zwei Schritten erreicht:
Fügen Sie dies einfach zu Ihrer local.properties -Datei Ihres Projekts hinzu:
BUILD_DIR=C\:\\Tmp
(Der Fehler in Windows ist auf einen langen Pfad zurückzuführen, daher habe ich den Pfad zu einem temporären Ordner angegeben.)
Ich habe eine Android-Anwendung in Android Studio (Gradle-Version 2.10) von Eclipse importiert. Die gezeichneten Bilder werden nicht unterstützt. Entfernen Sie diese Bilder dann manuell und fügen Sie einige PNG-Bilder ein.
Aktualisieren Sie auch den Android Drawer-Importer aus dem Android-Repository. Bereinigen Sie die Anwendung und erstellen Sie sie neu. Dann funktioniert sie.
Für mich war es eine beschädigte PNG-Datei .
Gehen Sie zu Ihrem res
-Ordner und versuchen Sie, jedes Bild zu öffnen. Wenn Sie ein Bild finden, das nicht geöffnet werden kann, ersetzen Sie es durch ein gutes Bild.
Das Schließen von Android Studio und das erneute Öffnen lösten dieses Problem in meinem Fall.
Versuche es. Ich weiß, dass es nicht die richtige Lösung oder Antwort ist, aber es funktioniert. Ich bin mir nicht sicher, was die Ursache ist. Es wäre toll, wenn jemand das teilen könnte.