Ошибка выполнения для задачи app: mergeDebugResources Crunching Cruncher… png не удалось

103

Я добавил несколько изображений в формате * .png в свой каталог drawable и связал его с макетами. Но каждый раз, когда я пытался его построить, появляется ошибка

"... Crunching Crunsher ... png не удалось"

Ниже приводится вывод консоли:

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

Я попытался очистить проект, пересобрать его, обновить зависимости с помощью «gradlew clean build --refresh-dependencies», ничего не помогло. Я проверил зависимости в файле build.gradle, но ничего не вызывает ошибки.

   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'
  }

Вы знаете, в чем причина ошибки? Путь к файлу также не слишком длинный и каждый раз до 256 знаков, что тоже не проблема: /

Заранее спасибо :)

bot.rubiks
источник
Вам в этом еще повезло? Я испытываю то же самое.
Mushcraft
1
Я уже решил эту проблему, поделившись решением здесь -> stackoverflow.com/questions/22583418/…
ashumeow
2
Ошибка: слишком длинный путь к файлу в Windows, не превышайте 240 символов. Попробуйте использовать более короткий путь для своего проекта. В моем случае я переместил исходный код проекта из другой папки на рабочий стол, и после открытия проекта с рабочего стола эта проблема решилась автоматически.
Lucky Rana
@LuckyRana у меня тоже сработала
Bassem Wissa
Как сказал @LuckyRana, меньшее количество символов имеет значение, мне не нужно было менять каталог, имя моего проекта было слишком длинным, поэтому сделало его короче, и это сработало. Это может помочь, если кто-то столкнется с проблемой и его проект уже находится в корневом каталоге.
devcodes

Ответы:

128

В моем случае ошибка была вызвана файлом PNG, который я добавил в папку с возможностью рисования. Я изменил его расширение с jpg на png , изменив текст (некорректным образом), а затем загрузив его как PNG.

Это была проблема, на которую указывала Android Studio.

Я исправил эту проблему, и ошибка исчезла, изменив расширение файла с помощью инструмента Paint.NET или любого другого инструмента (надлежащим образом), а затем загрузив его в папку с возможностью рисования.

Smoothumut
источник
13
Совет: если вы используете Mac OS, вы можете открыть терминал и выполнить следующую команду из папки изображений: 'sips -s format png * .png --out.' Он правильно конвертирует все файлы с суфиксом .png в настоящие файлы PNG :)
cassioso
То же самое случилось со мной, я тоже переименовал расширение с psd в png, и оно не запустилось. получил это точное сообщение об ошибке.
TharakaNirmana
2
Этот выпуск воспроизводится и у меня. Большое спасибо за ваш ответ.
Нисим Наим
@cassioso Спасибо, дружище.
WideFide
1
Спасибо, приятель ... решил мою проблему, сделав то же самое, что и ты.
Aparna
116

Я исправил эту проблему, переместив проект во внешний каталог, после чего он успешно скомпилировался.

Это произошло из-за длинного пути к каталогу проекта.

Например, я перенес проект из:

D:/Android/Apps/AndroidStudioProject/AppName

к

D:/Android/AppName
Лахан Шарма
источник
Не знаю почему ... но это единственное, что у меня сработало. Спасибо вам большое!
drayn
1
Да, я не могу объяснить почему. Но у меня это тоже
сработало,
8
Может быть, из-за длинного пути.
Rajeev
1
Была такая же проблема в Windows 7 x64, Gradle 2.14.1, средствах сборки Android 24.0.2. Мой полный путь к файлу ресурсов был слишком длинным (243 символа). Когда я переименовал папку с проектом, проблема устранилась.
Дмитрий
У меня тоже сработало !. Была проблема на Android Studio 2.2.0
Zen
53

Это связано с добавлением изображения в drawable, которое имеет некоторое расширение, например (.jpg), и вы изменили или сохранили его в формате .png (эта ошибка возникает при изменении формата изображения вручную без использования редактора).

Android Studio выдает ошибку при компиляции пакета ресурсов с помощью AAPT (Android Asset Packaging Tool), поэтому все, что вам нужно сделать, это использовать некоторые инструменты редактора изображений, такие как GIMP или Paint, чтобы сохранить расширение соответствующим образом. Восстановите свой проект, когда все будет сделано.

Например: откройте свое изображение в Paint (перетащите изображение, чтобы открыть его) → меню ФайлСохранить какСохранить как тип → выберите нужный тип из раскрывающегося списка, как показано на рисунках ниже:

Введите описание изображения здесь

Введите описание изображения здесь

Ананд Криш
источник
@krish У меня есть расширение для изменений с gimp, но, похоже, он не работает по-другому, пожалуйста, помогите.
Аджай Пандья
1
используйте инструмент Paint , чтобы изменить расширение изображения чувак, это довольно просто. Я объяснил выше, как его использовать ...
Ананд Криш
1
Я изменил расширение изображения с помощью Preview (на Mac), отлично работало, большое спасибо!
Emzor
1
Предупреждение: Использование Paint удалит прозрачность, если в вашем изображении была какая-либо прозрачность.
Kingston
1
это действительно очень полезно,
спасибо
20

В моем случае решение было простым. Я переместил весь проект в другое место, где путь короткий.

Проблема была вызвана длинными именами каталогов и файлов.

Кадир Эртюрк
источник
5
OP говорит, что путь к файлу не слишком длинный. Если вы хотите бросить ему вызов, возможно, будет лучше комментарий.
Джонатан Ми,
Это связано с ограничениями длины пути Windows, когда Bamboo работает на Windows Server. Решение: сборка на Linux!
Ewoks
20

Лучшее решение - изменить buildDir в build.gradle :

Например:

allprojects {
    buildDir = "C:/tmp/${rootProject.name}/${project.name}"
    repositories {
        jcenter()
    }
}

Восстановление и счастливое кодирование.

Heberth
источник
Намного проще, чем переносить проект. Ницца!
fishjd
Пробовал решение, и оно сработало, но теперь я не могу выполнить развертывание на своем телефоне из Visual Studio 2015. Получите следующую ошибку: «Не удалось найти развертываемый apk. Возможно, вам потребуется создать свой проект».
Хасан Ата Улла
9

В моем случае я решил эту проблему, просто изменив файл моей библиотеки, поскольку я допустил глупую ошибку, добавив две разные версии одной и той же библиотеки.

Поскольку это может быть связано с разными причинами, я нашел следующие способы решения этой проблемы в соответствии с проблемой:

  1. Несоответствие ресурсов

  2. Отсутствующие атрибуты, неправильные теги и т. Д. В ресурсах

  3. Проблема в стилях

  4. В стилях отсутствует имя

  5. Дублирование ресурсов и библиотек

  6. Иногда это даже можно решить, изменив совместимую библиотеку в build.gradle

  7. Выполнение aaptкоманды

  8. Переименование расширения с .jpg на .png

  9. Просто с помощью Clean Project.

    1. Даже в некоторых случаях перезапуск Android Studio может решить проблему.
SID --- Choke_de_Code
источник
4

Это связано с тем, что ваш файл PNG не поддерживается или вы напрямую переименовали файл.

Проделайте следующие шаги.

  1. Скопируйте исходный файл изображения из Android Studio на рабочий стол.
  2. Откройте файл с помощью Paint.
  3. Сохранить файл с расширением .png
  4. Удалите существующий исходный файл из Android Studio, который вы скопировали.
  5. Добавьте только что созданный файл, который вы переименовали с помощью Paint.

Задача решена :)

Всегда учиться
источник
Я использовал tinypng.com для регенерации изображений в формате png
Junior Mayhé
4

В моем случае, когда я создал файл 9.png, мой исходный файл PNG использовал поле, на котором нарисована линия 9.png, создавая плохой файл 9.png. Попробуйте добавить немного поля к вашему файлу PNG.

Гильерме Рамос
источник
Да, мой был похож на это. Я изменял файл изображения, и когда я его сохранил, он оказался поврежденным. Мне просто нужно было повторить корректировки изображения и заново сохранить его.
uplearnedu.com
4

Если вы используете Linux, попробуйте следующее:

sudo apt-get install lib32stdc++6 lib32z1

Это отсюда .

Максим Тураев
источник
3

Лучший ответ уже дан в выводе gradle:

* Try:
Run with --stacktrace option to get the stack trace. 

Откройте Терминал в Android Studio и запустите gradlew :app:mergeDebugResources --stacktrace. (В моем случае это был предел Windows 240 символов), но он также должен указать вам основную причину любой другой проблемы.

Mattlaabs
источник
3

В моем случае я считаю, что проблема связана с длиной пути к файлу. В системах UNIX и Windows максимальная длина пути составляет 255 и 260 символов соответственно, и я считаю, что процесс crunch завершается неудачно при назначении динамически заданному пути. Итак, даже если указанные длины путей в сообщении об ошибке короче предела (у меня было всего 187 путей в среде сборки Windows), я думаю, что утилита crunch может внутренне указать более длинный путь, даже если это временно.

Вы можете определить, является ли это источником ошибки, переместив свой проект в самый корневой каталог вашей файловой системы, а затем попытавшись перекомпилировать.

Mapsy
источник
Спасибо. У меня была такая же проблема, но я этого не осознавал. В сообщении об ошибке не указана длина пути, так как проблема, а длина пути к печатаемому файлу была меньше 255. Тем не менее, установка env var GRADLE_USER_HOME на что-то очень короткое устранила проблему на моей машине сборки.
albert c braun
2

Я пытался перестроить, перезапустить, очистить, обновить Gradle и т.д. Однако ни один из них у меня не работал.

Иногда это может быть вызвано неправильным названием XML или файла ресурсов.

По крайней мере, для меня эта проблема решилась изменением названия.

Elfekz
источник
2

Я заметил, что понижение версии инструментов сборки Gradle до 1.2.3 решило мою проблему с ошибкой Crunching PNG, но в 1.5.0 проблема не исчезла.

AskQ
источник
1

Файл> Недействительные кеши / перезапуск

Хан
источник
1

Я поместил свои изображения в свою папку с возможностью рисования в начале проекта, и он всегда выдает мне эту ошибку и никогда не создает, поэтому я:

  1. Удалил все из drawable
  2. Пытался запустить (что, очевидно, вызвало еще одну ошибку сборки, потому что отсутствует ссылка на файлы
  3. Повторно добавил изображения в папку, заново собрал проект, запустил его, и все заработало.

Понятия не имею, почему это сработало для меня, но сработало. Удачи в этой неразберихе, которую мы называем Android Studio.

rychrist88
источник
1

Процесс Crunching - это процесс подготовки изображения, что означает, что с вашими файлами изображений что-то не так. В моем случае у меня был файл PNG, который на самом деле не был файлом PNG.

Мое решение:

Я преобразовал все свои изображения в PNG, запустив супер простой скрипт Python из папки изображений, поэтому все, что вам нужно сделать, это:

  1. Чтобы установить библиотеку PIL, запустите: pip install pillow

  2. Сохраните приведенный ниже код Python в файле .py в папке с изображениями, которые вы хотите преобразовать.

  3. Настройте переменные from_format, to_format в скрипте так, как вам нужно.

  4. Запускаем скрипт: 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())

И если вы хотите узнать больше о модуле изображения: http://effbot.org/imagingbook/image.htm

Меркурий
источник
1

Я столкнулся с этой проблемой, когда скопировал свои изображения (неважно, JPEG или PNG) в папку с возможностью переноса вручную. Могут быть разные временные решения этой проблемы, но лучший вечный способ - использовать плагин импортера Drawable для студии Android .

Установите его, перейдя в: меню ФайлНастройкиПлагиныОбзор репозиториев → поиск «Drawable». В качестве первого варианта вы найдете импортер Drawable. Нажмите установить на правой панели.

Используйте его, щелкнув правой кнопкой мыши папку ресурсов Drawable, а затем новую. Теперь вы можете увидеть четыре новых параметра, добавленных в конец списка, и среди них вы найдете подходящий вариант. В этом случае «Пакетный импорт с возможностью рисования» сделает свое дело.

АмиНадими
источник
1

У меня возникла эта проблема после перехода на Gradle 3.3 в Windows (с gradle-2.14.1 все было хорошо).

Проблема заключалась в пути к кешу сборки Gradle, который содержит кириллические символы, например

C:\Users\Иван\.android\build-cache

Я переименовал папку пользователя в «Иван», и проблема исчезла.

ИванП
источник
+1, но мы не смогли решить проблему на нашем сервере сборки. Путь выглядит хорошо, но не работает. Мы вернулись к старому Gradle ...: /
Невероятное
1

Кажется, это неприятная проблема Gradle. Мы только что обновились с 2.14 до 3.3, и наш сервер сборки больше не мог строить (работала локальная сборка в Android Studio).

Ошибка со слишком длинным путем показывает, например:

C: \ Windows \ System32 \ config \ systemprofile.gradle \ caches \ 3.3 \ scripts-remapped \ build_bonsjy48fqq8sotonpgrvhswt \ 36ejadunoxgw3iugkh95lqw \ projedd7e29570ae79482d0308d82cd7e29570ae79482d0308d82cotc_club_club_club_club_counts_c8c_c8c_club_club_club_club_club_counts_f4e346blosure

Нам пришлось создать локальную учетную запись пользователя для службы, которая годами работала как системная ... Теперь она сохраняется в папке C: \ Users ... что намного короче, чем путь к системному профилю.

Невероятный Ян
источник
1

Я изменил местоположение приложения и скопировал его на короткий путь. Вы можете сделать это, просто скопировав свой проект и вставив его в новое короткое местоположение. И это сработало для меня.

Например,

Old_path: c/:user/android_studio_project/your_app
New_path: c/:your_app
Crime_Master_GoGo
источник
0

Закрытие Android Studio и повторное открытие решило эту проблему в моем случае.

Попробуйте. Я знаю, что это неправильное решение или ответ, но он работает. Я не уверен в первопричине. Было бы здорово, если бы кто-нибудь поделился этим.

Сунил Пурушотаман
источник
0

Я импортировал приложение Android в Android Studio (Gradle версии 2.10) из Eclipse. Выдвижные изображения не поддерживаются, затем вручную удалите эти изображения и вставьте несколько изображений PNG.

А также обновите импортируемый импортер Android из репозитория Android. Затем очистите и перестройте приложение, и оно будет работать.

Муру
источник
0

Эта ошибка возникла у меня из-за пути, в котором находился мой проект. В одной папке было пустое место, например,

Folder\Another Folder\MyAndroidProjects\...

Изменение его Folder\AnotherFolder\MyAndroidProjects\...и повторная синхронизация Gradle разрешили это для меня.

Маркус
источник
0

Я также столкнулся с этой проблемой, и она не была решена путем переформатирования изображения, хотя это было изображение из проектного приложения Google, и оно было решено только с помощью:

Перенос файла проекта в раздел напрямую

Попытайся. Это может тебе помочь.

Дассер Басюни
источник
0

В моем случае я нашел решение в два этапа:

  1. Держите имя проекта, имя пакета, имена папок короткими, потому что, если имя каталога превышает 255 символов, возникает ошибка mergeResource.
  2. Храните свои чертежи в доступных папках. Любой файл с возможностью рисования, например .jpg и .png, за пределами доступных для рисования папок вызывает ошибку папки mergeResource.
DiRiNoiD
источник
255 символов? Какая платформа? Linux? Mac?
Питер Мортенсен
0

Я тоже страдаю той же проблемой. В моем случае я просто скопировал изображение в папку с возможностью переноса, а затем Android Studio показывает ошибку « Ошибка при обработке некоторых файлов».

Моя проблема с изображением только потому, что это изображение было сохранено из одного из моих настроенных приложений камеры в формате .png. И в целях тестирования я скопировал его в папку с возможностью переноса.

После этого я протестировал сохранение изображения как .jpg. Это не дало никаких ошибок. Это означает, что камера по умолчанию поддерживает формат «.jpg».

Наконец я понял две вещи:

  1. Камера по умолчанию поддерживает формат «.jpg».

  2. Без использования графических инструментов не меняйте форматы изображений (даже программно).

Кона Суреш
источник
расширение файла! = формат файла. Вы можете назвать файл как хотите - это не изменит его формат.
Невероятный
Я не понимаю, что вы пытаетесь сказать !. Мое изображение взято из специального приложения камеры и программно сохранено как .png. Поэтому, когда я добавляю это изображение в папку с возможностью рисования, компиляция не удалась. при сохранении изображения из моего приложения камеры как .jpg он не выдаст ошибку.
Кона Суреш
Я понял ваш ответ так: ваше приложение создало файл jpg, но назвало его «png», а затем вы были удивлены, что это не сработало.
Невероятный
0

Просто добавьте это в свой файл local.properties своего проекта:

BUILD_DIR=C\:\\Tmp

(Ошибка в Windows связана с длинным путем, поэтому я указал путь к одной временной папке.)

Рати
источник
0

Для меня это потому, что один из моих файлов .png на самом деле является файлом .psd. Восстановите его в настоящий файл PNG, и он исправлен.

Кай Ван
источник
0

Для меня это был поврежденный файл PNG .

Зайдите в свою resпапку и попробуйте открыть каждое изображение. Если вы обнаружите изображение, которое невозможно открыть, замените его хорошим изображением.

Флорис М
источник
-1

Чтобы решить эту проблему, вы должны использовать drawable -> new -> image asset, а затем добавить свои изображения. Затем вы обнаружите, что папка mipmap содержит ваши изображения, и вы можете использовать ее с помощью @ mibmab / img.

Вессам Хассан Рагаб
источник