Не вдалося виконати для програми "app: mergeDebugResources 'Crunching Cruncher ... png не вдалося


103

Я додав декілька зображень у форматі * .png до свого каталогу, що звертається, і пов’язав його з макетами. Але кожен раз, коли я намагався його побудувати, з’являється помилка

"... 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 - refreresh-залежності", нічого не вийшло. Я перевірив залежності у файлі 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'
  }

Чи маєте ви уявлення, яке джерело помилки? Filepath також не надто довгий і щоразу unter 256 знаків, що також не проблема: /

Заздалегідь спасибі :)


у вас була якась подальша удача з цього приводу? Я переживаю те саме.
гриб

1
Я вже вирішив цю проблему шляхом спільного рішення тут -> stackoverflow.com/questions/22583418 / ...
ashumeow

2
Помилка: занадто довгий шлях до файлів Windows, не менше 240 символів. Просто спробуйте використовувати коротший шлях для свого проекту. У моєму випадку я перемістив джерело свого проекту з іншої папки на робочий стіл, і після відкриття проекту з робочого столу ця проблема вирішується автоматично.
Lucky Rana

@LuckyRana теж працював на мене
Бассем Вісса

Як сказав @LuckyRana, менша кількість символів має значення, мені не довелося міняти каталог, назва мого проекту була занадто довгою, тому зробила її коротшою і вона працювала. Це може допомогти, якщо хтось стикається з проблемою, і їх проект уже знаходиться в кореневій директорії.
devcodes

Відповіді:


128

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

На цю проблему вказувала Android Studio.

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


13
Порада: якщо ви перебуваєте на mac os, ви можете відкрити термінал і виконати наступну команду із папки images: 'sips -s format png * .png --out.' Він належним чином перетворить усі файли з .png-суфіксом у справжні файли PNG :)
cassioso

те саме сталося і зі мною, я перейменував розширення з psd на png, і воно не вдалося запустити. отримав це точне повідомлення про помилку.
TharakaNirmana

2
Це питання відтворено і для мене. Велике спасибі за вашу відповідь.
Нісім Наїм

@cassioso Спасибі приятель.
WideFide

1
Дякую приятелю .. вирішив мою проблему, зробивши точно те саме, що згадано.
Апарна

116

Я вирішив цю проблему, перемістивши проект у зовнішній каталог, і він успішно склався.

Це було пов’язано з довгим маршрутом каталогу проектів.

Наприклад, я перемістив проект з:

D:/Android/Apps/AndroidStudioProject/AppName

до

D:/Android/AppName

Я не знаю чому .. але це єдине, що працювало на мене. Дуже дякую!
drayn

1
Так, я не можу пояснити, чому. Але це добре спрацювало і для мене
Thilaw Fabrice

8
Це може бути пов'язано з проблемою довгого шляху.
Раєєв

1
Ця ж проблема була в Windows 7 x64, Gradle 2.14.1, інструментах для збирання Android 24.0.2. Мій повний шлях до файлу ресурсу був занадто довгим (243 символи). Коли я перейменував папку з проектом, він вирішив проблему.
Дмитро

Працювали і для мене !. Проблема виникла на студії Android 2.2.0
Zen

53

Це пов’язано з додаванням зображення в файл, що малюється, який має деяке розширення (.jpg), і ви змінили або зберегли його у форматі .png (ця помилка виникне під час зміни формату зображення вручну без використання інструмента редактора).

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

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

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

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


@krish У мене є розширення змін із gimp, але, схоже, не працює іншим способом, будь ласка, допоможіть.
Аджай Пандія

1
використовувати інструмент Paint , щоб змінити розширення зображення чувак, його досить легко. Я вже пояснював, що стосується того, як його використовувати ...
anand krish

1
Я змінив розширення зображення за допомогою Preview (на Mac), працював ідеально, велике спасибі!
Емзор

1
Слово застереження: Використання Paint видалить прозорість, якщо на Вашому Зображенні була якась прозорість.
Кінгстон

1
це справді дуже корисно thnx
Achref Gassoumi

20

У моєму випадку рішення було простим. Я перемістив весь проект в інше місце, де шлях короткий.

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


5
ОП каже, що шлях до файлу не довгий. Якщо ви хочете оскаржити його на це, можливо, коментар буде краще.
Джонатан Мі

Це пов'язано з обмеженням довжини шляху Windows, коли Bamboo працює на Windows Server. Рішення: Будуйте на Linux!
Ewoks

20

Найкраще рішення - змінити buildDir у build.gradle :

Наприклад:

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

Перебудуйте та щасливе кодування.


Набагато простіше, ніж рухати проект. Приємно!
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 може вирішити проблему.

4

Це тому, що ваш файл PNG не підтримується, або ви перейменували файл безпосередньо.

Виконайте наступні дії.

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

Проблема вирішена :)


Я використовував tinypng.com для регенерації PNG зображень
Молодший Мейе

4

У моєму випадку, коли я створив файл 9.png, мій оригінальний файл PNG використовував поле, де малюється лінія 9.png, створюючи неправильний файл 9.png. Спробуйте додати деякий запас у файл PNG.


Так, моя була схожа на це. Я змінював файл зображення, і коли його зберегли, він став пошкодженим. Мені просто довелося змінити налаштування зображення та зберегти його.
uplearnedu.com


3

Найкраща відповідь вже дана у результатах gradle:

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

Відкрийте термінал в Android Studio і запустіть gradlew :app:mergeDebugResources --stacktrace. (У моєму випадку це було обмеженням для символів Windows 240), але це також повинно дати вам першопричину для будь-якого іншого питання.


3

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

Ви можете визначити, чи є це джерелом помилок, перемістивши проект до самого кореневого каталогу вашої файлової системи, а потім спробуйте перекомпілювати.


Дякую. У мене була така ж проблема, але її не усвідомлювали. Повідомлення про помилку не вказувало довжину шляху, оскільки проблема та довжина шляху до файлу, який він друкує, було менше 255. Тим не менш, встановлення env var GRADLE_USER_HOME на щось дуже коротке вирішило проблему на моїй машині збирання.
albert c braun

2

Я намагався відновити, перезапустити, очистити, оновити Gradle тощо. Проте жоден з них не працював на мене.

Іноді це може бути викликано неправильним іменем XML або файла ресурсів.

Принаймні, для мене цю проблему вирішили змінивши назву.


2

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



1

Я розмістив свої зображення в папці, що малюється, на початку проекту, і вона завжди давала б мені цю помилку і ніколи не будувалась так, що я:

  1. Видалено все з драйвового
  2. Спробував запустити (що, очевидно, спричинило чергову помилку збірки, оскільки на ньому відсутні посилання на файли
  3. Повторно додав зображення в папку, знову створив проект, запустив його, а потім він спрацював чудово.

Я поняття не маю, чому це працювало для мене, але це було. Удачі в цьому безладі ми називаємо Android Studio.


1

Процес подрібнення - це процес підготовки зображень, який означає, що з вашими файлами зображень щось не так. У моєму випадку у мене був файл 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) у папку, що перетягується вручну. Можливо, існують різні види тимчасових рішень цієї проблеми, але один найкращий вічний спосіб - використовувати плагін імпортера Dravable для Android студії .

Встановіть його, перейшовши до: меню ФайлНалаштуванняПлагіниОгляд сховищ → пошук "Dravable". Імпортер Dravable ви знайдете як перший варіант. Клацніть «Встановити» на правій панелі.

Використовуйте його, клацнувши правою кнопкою миші на папці Drawable resource, а потім новою. Тепер ви можете побачити чотири нові варіанти, додані внизу списку, і серед них ви знайдете відповідний варіант. У цьому випадку "Пакетний імпорт" може зробити свою справу.


1

Я отримав цю проблему після переходу на Gradle 3.3, на Windows (з gradle-2.14.1 все було добре).

Проблема полягала у шляху до кеш-файлу Gradle, який містить, наприклад, символи кирилиці

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

Тож я перейменував папку користувача на "Іван", і проблеми не було.


+1, але ми не змогли вирішити проблему на нашому сервері збирання. Шлях виглядає добре, але не працює. Ми повернулися до старого градле ...: /
Неймовірний січень

1

Здається, це неприємна проблема Градле. Ми щойно оновили з 2.14 до 3.3, і наш сервер збирання більше не міг будувати (працювала локальна збірка в Android Studio).

Помилка із занадто довгим шляхом показує, наприклад:

C: \ Windows \ System32 \ Config \ systemprofile.gradle \ кеші \ 3.3 \ скрипти-перепризначений \ build_bonsjy48fqq8sotonpgrvhswt \ 36ejadunoxgw3iugkh95lqw \ projedd7e29570ae79482d0308d82f4e346b \ Класи \ build_bonsjy48fqq8sotonpgrvhswt $ _run_closure1 $ _closure8 $ _closure13 $ _closure14 $ _closure15.class

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


1

Я змінив місце розташування програми та скопіював його на короткий шлях. Це можна зробити, просто скопіювавши проект і вставивши його на нове коротке місце розташування. І, це працювало для мене.

Наприклад,

Old_path: c/:user/android_studio_project/your_app
New_path: c/:your_app

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.

255 символів? Яка платформа? Linux? Мак?
Пітер Мортенсен

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

Щоб вирішити цю проблему, слід скористатися ресурсом зображення, що малюється -> new ->, а потім додати свої зображення. Потім ви знайдете папку mipmap, що містить ваші зображення, і ви можете використовувати її за допомогою @ mibmab / img.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.