Dodałem kilka zdjęć w formacie * .png do mojego katalogu drawable i połączyłem je z układami. Ale za każdym razem, gdy próbowałem go zbudować, pojawia się błąd
„... Crunching Crunsher ... png nie powiódł się”
Poniżej przedstawiono dane wyjściowe konsoli:
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
Próbowałem wyczyścić projekt, odbudować go, odświeżyć zależności poprzez "gradlew clean build --refresh-dependencies", nic nie działało. Sprawdziłem zależności w pliku build.gradle, ale nic nie wydaje się powodować błędu.
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'
}
Masz pomysł, jakie jest źródło błędu? Ścieżka do pliku też nie jest zbyt długa i za każdym razem ma 256 znaków, co też nie jest problemem: /
Z góry dziękuję :)
Odpowiedzi:
W moim przypadku błąd był spowodowany plikiem PNG, który dodałem do folderu do rysowania. Zmieniłem jego rozszerzenie z jpg na png , zmieniając tekst (w niewłaściwy sposób), a następnie przesyłając go jako PNG.
To był problem, na który wskazywał Android Studio.
Naprawiłem ten problem i błąd zniknął, zmieniając rozszerzenie pliku za pomocą narzędzia Paint.NET lub dowolnego innego narzędzia (we właściwy sposób), a następnie przesyłając go do folderu do rysowania.
źródło
Rozwiązałem ten problem, przenosząc projekt do katalogu zewnętrznego, a następnie pomyślnie skompilowałem.
Wynikało to z długiej ścieżki katalogu projektu.
Na przykład przeniosłem projekt z:
do
źródło
Wynika to z dodania obrazu do rysowania, który ma pewne rozszerzenie, takie jak (.jpg), i zmieniłeś go lub zapisałeś do formatu .png (ten błąd wystąpi podczas ręcznej zmiany formatu obrazu bez użycia narzędzia edytora).
Android Studio wyświetli błąd podczas kompilowania pakietu zasobów za pomocą AAPT (Android Asset Packaging Tool), więc wszystko, co musisz zrobić, to użyć niektórych narzędzi do edycji obrazów, takich jak GIMP lub Paint, aby odpowiednio zapisać rozszerzenie. Odbuduj swój projekt, gdy wszystko będzie gotowe.
Na przykład: otwórz obraz w programie Paint (przeciągnij i upuść obraz, aby go otworzyć) → menu Plik → Zapisz jako → Zapisz jako typ → wybierz żądany typ z menu rozwijanego, tak jak pokazałem na poniższych zdjęciach:
źródło
W moim przypadku rozwiązanie było proste. Przeniosłem cały projekt w inne miejsce, gdzie ścieżka jest krótka.
Problem był spowodowany długimi nazwami katalogów i plików.
źródło
Najlepszym rozwiązaniem jest zmiana buildDir w build.gradle :
Na przykład:
Odbuduj i szczęśliwego kodowania.
źródło
W moim przypadku rozwiązałem ten problem, po prostu zmieniając plik biblioteki, ponieważ popełniłem głupi błąd dodając dwie różne wersje tej samej biblioteki.
Ponieważ może to wynikać z różnych przyczyn, znalazłem następujące sposoby rozwiązania tego problemu zgodnie z problemem:
Niedopasowanie zasobów
Brakujące atrybuty, niewłaściwe tagi itp. W zasobach
Problem w stylach
Brak nazwy w stylach
Powielanie zasobów i bibliotek
Czasami można to nawet rozwiązać, zmieniając kompatybilną bibliotekę w build.gradle
Wykonywanie
aapt
poleceniaZmiana nazwy rozszerzenia z .jpg na .png
Po prostu za pomocą
Clean Project
.źródło
Dzieje się tak, ponieważ Twój plik PNG nie jest obsługiwany lub bezpośrednio zmieniłeś nazwę pliku.
Wykonaj następujące kroki.
Problem rozwiązany :)
źródło
W moim przypadku, kiedy tworzyłem plik 9.png, mój oryginalny plik PNG używał marginesu, w którym rysowana jest linia 9.png, tworząc zły plik 9.png. Spróbuj dodać trochę marginesu do pliku PNG.
źródło
Jeśli używasz Linuksa, spróbuj tego:
To jest stąd .
źródło
Najlepsza odpowiedź jest już podana w wynikach gradle:
Otwórz Terminal w Android Studio i uruchom
gradlew :app:mergeDebugResources --stacktrace
. (W moim przypadku był to limit znaków w systemie Windows 240), ale powinien również podać główną przyczynę każdego innego problemu.źródło
W moim przypadku wydaje mi się, że ten problem był związany z długością ścieżki pliku. Systemy UNIX i Windows narzucają maksymalną długość ścieżki odpowiednio 255 i 260 znaków i uważam, że proces crunch kończy się niepowodzeniem podczas przypisywania do ścieżki określonej dynamicznie. Tak więc, nawet jeśli zacytowane długości ścieżek w komunikacie o błędzie są krótsze niż limit (mój był tylko 187 w środowisku kompilacji Windows), myślę, że narzędzie Crunch może wewnętrznie określić dłuższą ścieżkę, nawet jeśli tylko tymczasowo.
Możesz określić, czy jest to źródło błędu, przenosząc projekt do katalogu głównego w systemie plików, a następnie spróbuj ponownie skompilować.
źródło
Próbowałem odbudować, zrestartować, wyczyścić, zaktualizować Gradle itp. Jednak żaden z nich nie działał dla mnie.
Czasami przyczyną może być niewłaściwe nazewnictwo pliku XML lub pliku zasobów.
Przynajmniej dla mnie ten problem został rozwiązany poprzez zmianę nazwy.
źródło
Zauważyłem, że obniżenie wersji narzędzi do kompilacji Gradle do wersji 1.2.3 rozwiązało mój problem z błędem Crunching PNG, ale w wersji 1.5.0 problem nadal występuje.
źródło
źródło
Umieściłem swoje obrazy w folderze do rysowania na początku projektu i zawsze dawał mi ten błąd i nigdy nie tworzył, więc:
Nie mam pojęcia, dlaczego to zadziałało, ale zadziałało. Powodzenia w tym bałaganie, który nazywamy Android Studio.
źródło
Proces Crunching to proces przygotowania obrazu, co oznacza, że coś jest nie tak z plikami obrazów. W moim przypadku miałem plik PNG, który tak naprawdę nie był plikiem PNG.
Moje rozwiązanie:
Przekonwertowałem wszystkie moje obrazy na PNG, uruchamiając super prosty skrypt w Pythonie z folderu obrazów, więc w sumie wszystko, co musisz zrobić, to:
Aby zainstalować bibliotekę PIL, uruchom:
pip install pillow
Zapisz poniższy kod Pythona w pliku .py w folderze obrazów, który chcesz przekonwertować.
Dostosuj zmienne from_format, to_format w skrypcie do dowolnych potrzeb.
Uruchom skrypt:
python script_name.py
A jeśli chcesz przeczytać więcej o module Image: http://effbot.org/imagingbook/image.htm
źródło
Napotkałem ten problem, gdy ręcznie skopiowałem moje obrazy (bez względu na JPEG lub PNG) do folderu do rysowania. Mogą istnieć różne rodzaje tymczasowych rozwiązań tego problemu, ale jednym z najlepszych odwiecznych sposobów jest użycie wtyczki importera Drawable dla Android Studio .
Zainstaluj go, przechodząc do: menu Plik → Ustawienia → Wtyczki → Przeglądaj repozytoria → wyszukaj „Drawable”. Jako pierwszą opcję znajdziesz importer do rysowania. Kliknij zainstaluj na prawym panelu.
Użyj go, klikając prawym przyciskiem myszy folder zasobów do rysowania, a następnie nowy. Teraz możesz zobaczyć cztery nowe opcje dodane na dole listy, a wśród nich znajdziesz odpowiednią opcję. W tym przypadku wystarczyłby „Import wsadowy do rysowania”.
źródło
Mam ten problem po migracji do Gradle 3.3, w systemie Windows (z Gradle-2.14.1 wszystko było w porządku).
Problem tkwił w ścieżce do pamięci podręcznej kompilacji Gradle, która zawiera znaki cyrylicy, na przykład
Dlatego zmieniłem nazwę folderu użytkownika na „Ivan” i problem zniknął.
źródło
Wydaje się, że to paskudny problem Gradle. Właśnie zaktualizowaliśmy wersję 2.14 do 3.3 i nasz serwer kompilacji nie mógł już budować (działała lokalna kompilacja w Android Studio).
Błąd ze zbyt długą ścieżką pokazuje na przykład:
Musieliśmy utworzyć lokalne konto użytkownika dla usługi, która działała jako usługa systemowa przez lata ... Teraz zapisuje się pod C: \ Users ..., co jest znacznie krótsze niż ścieżka profilu systemu.
źródło
Zmieniłem lokalizację aplikacji i skopiowałem ją do krótkiej ścieżki. Możesz to zrobić, kopiując projekt i wklejając go do nowej krótkiej lokalizacji. I to zadziałało dla mnie.
Na przykład,
źródło
Zamknięcie Android Studio i ponowne otwarcie rozwiązało ten problem w moim przypadku.
Spróbuj. Wiem, że to nie jest właściwe rozwiązanie ani odpowiedź, ale działa. Nie jestem pewien, jaka jest główna przyczyna. Byłoby wspaniale, gdyby ktoś mógł się tym podzielić.
źródło
Importowałem aplikację na Androida w Android Studio (Gradle w wersji 2.10) z Eclipse. Obrazy do rysowania nie są obsługiwane, więc ręcznie usuń te obrazy i wklej niektóre obrazy PNG.
Zaktualizuj także importer do rysowania dla Androida z repozytorium Androida. Następnie wyczyść i odbuduj aplikację, a potem już działa.
źródło
Ten błąd został spowodowany przez mnie ze względu na ścieżkę, w której znajdował się mój projekt. W jednym folderze było puste miejsce, na przykład
Zmiana na
Folder\AnotherFolder\MyAndroidProjects\...
i ponowna synchronizacja Gradle rozwiązała ten problem.źródło
Zmierzyłem się również z tym problemem i nie został on rozwiązany przez ponowne sformatowanie obrazu, chociaż był to obraz z aplikacji projektu Google, a został on rozwiązany tylko przez:
Przeniesienie pliku projektu bezpośrednio na partycję
Spróbuj. To może ci pomóc.
źródło
W moim przypadku do rozwiązania doszedłem w dwóch krokach:
źródło
Ja też cierpię z powodu tego samego problemu. W moim przypadku po prostu skopiowałem obraz do folderu do rysowania, a następnie Android Studio wyświetla błąd „Niektóre pliki nie powiodły się”.
Mój problem dotyczący obrazu tylko dlatego, że ten obraz został zapisany z jednej z moich niestandardowych aplikacji aparatu w formacie .png. W celach testowych skopiowałem go do folderu do rysowania.
Następnie przetestowałem zapisywanie obrazu jako .jpg. Nie dawał żadnego błędu. Oznacza to, że kamera domyślnie obsługuje format „.jpg”.
W końcu zdałem sobie sprawę z dwóch rzeczy:
Kamera domyślnie obsługuje format „.jpg”
Bez korzystania z narzędzi graficznych nie zmieniaj formatów obrazu (nawet programowo).
źródło
Po prostu dodaj to do pliku local.properties projektu:
(Błąd w systemie Windows wynika z długiej ścieżki, więc podałem ścieżkę do jednego folderu tymczasowego.)
źródło
Dla mnie dzieje się tak, ponieważ jeden z moich plików .png jest w rzeczywistości plikiem .psd. Zapisz go ponownie do prawdziwego pliku PNG i naprawiono.
źródło
Dla mnie był to uszkodzony plik PNG .
Przejdź do swojego
res
folderu i spróbuj otworzyć każdy obraz. Gdy znajdziesz obraz, którego nie można otworzyć, zastąp go dobrym obrazem.źródło
Aby rozwiązać ten problem, powinieneś użyć drawable -> new -> image asset, a następnie dodać swoje obrazy. Znajdziesz wtedy folder mipmap zawierający twoje obrazy i możesz go użyć przez @ mibmab / img.
źródło