Почему я получаю Некоторое хрусткое хэширование файла после того, как я переименовал файл с возможностью рисования в .9.png?

Я тестирую 9-патч-образ.
Прежде чем все будет хорошо, и я переименую drawable файл ic_button_beat_box_default.png в ic_button_beat_box_default.9.png, тогда я получаю сообщение об ошибке:

Не удалось выполнить хэширование файла, подробности см. в журналах

. Затем я переименую назад, он работает нормально. Итак, как это происходит?

Полная ошибка:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> Some file crunching failed, see logs for details

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeDebugResources'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
    ...
Caused by: java.lang.RuntimeException: Some file crunching failed, see logs for details
    at com.android.builder.png.QueuedCruncher.waitForAll(QueuedCruncher.java:260)
    at com.android.builder.png.QueuedCruncher.end(QueuedCruncher.java:280)
    at com.android.ide.common.res2.MergedResourceWriter.end(MergedResourceWriter.java:132)
    at com.android.ide.common.res2.DataMerger.mergeData(DataMerger.java:291)
    at com.android.ide.common.res2.ResourceMerger.mergeData(ResourceMerger.java:48)
    at com.android.build.gradle.tasks.MergeResources.doIncrementalTaskAction(MergeResources.java:250)
    at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:124)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:244)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:220)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:231)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:209)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
    ... 57 more

Ответы

Ответ 1

В Windows у меня была ошибка "BUILD FAILED Failed to crunch file [path]" и она была решена, закрыв проект Android Studio, скопировав всю папку проекта в папку с более коротким пути к каталогу, например мою папку C: а затем открытие проекта в новом месте. Надеюсь, что это поможет.

Ответ 2

У меня была такая же проблема, изменив только имя файла, когда я сохранил изображение в решении 9-patch-tool.

Ответ 3

Повторно переименуйте файл

ic_button_beat_box_default.9.png до ic_button_beat_box_default9.png, потому что студия android принимает ic_button_beat_box_default.9 вместо ic_button_beat_box_default.9.png

или другое решение добавляет строку ниже к вашему build.gradle(Module: app)

android{
 aaptOptions {cruncherEnabled = false} 
}

Ответ 4

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

Ответ 5

У меня есть красные другие подобные вопросы и ответы на них на SO, касающиеся того, что ошибка "хруст файла не удалась, см. журнал для деталей". Ничего не помогло. Итак, я вернул все "SO" изменения, которые я сделал с помощью gradle и других файлов и удалил ".9" в этом файле png.9, и он начал работать. Затем я снова воссоздал все *.9.png файлы. Следовательно, в моем случае причиной было неправильное редактирование 9.png во внешних редакторах png.

Ответ 6

попробуйте это, вставьте этот код в раздел android в приложении gradle:

aaptOptions {  
    cruncherEnabled = false  
}

Ответ 7

Для меня это решило установить

aaptOptions {  
    cruncherEnabled = false  
}

Затем для запуска приложения (иконки отсутствовали) затем удалите эту опцию и запустите приложение еще раз. Надеюсь, это поможет кому-то.

Ответ 8

Попробуйте установить это в defaultConfig:

aaptOptions.setProperty("cruncherEnabled", false)

Ответ 9

Это сработало для меня:

Сборка → Чистый проект.

а затем

Сборка → Реконструкция проекта.