Android 为什么在将可绘制文件重命名为.9.png后,文件处理失败?

Android 为什么在将可绘制文件重命名为.9.png后,文件处理失败?,android,Android,我正在测试9-patch图像。 在一切正常之前,我将drawable文件ic\u button\u beat\u box\u default.png重命名为ic\u button\u beat\u box\u default.9.png,然后出现错误: 某些文件处理失败,有关详细信息,请参阅日志 。然后我重新命名,它正常工作。那么这是怎么发生的呢 完全错误是: FAILURE: Build failed with an exception. * What went wrong: Executi

我正在测试9-patch图像。
在一切正常之前,我将
drawable
文件
ic\u button\u beat\u box\u default.png
重命名为
ic\u button\u beat\u box\u 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

当我在9-patch-tool中保存图像时,我只更改了文件名,解决了同样的问题。

在Windows上,我出现了一个“BUILD FAILED to crunch file[path]”错误,并通过关闭Android Studio项目,将整个项目文件夹复制到一个目录路径较短的位置来解决,例如my C:文件夹,然后在新位置打开项目。希望能有所帮助

我也有同样的问题。我能够解决它只是减少了一个文件夹从链。这是由于文件路径长。因此,请尝试为您的项目位置使用最小层次结构。

关于“文件处理失败,请参阅日志了解详细信息”错误,我还有其他类似的问题和答案。 没有任何帮助。所以,我恢复了我对gradle和其他文件所做的所有“一般”更改 并删除了png.9文件中的“.9”,然后开始工作。 然后我重新创建了所有*.9.png文件。
因此,在我的案例中,原因是在外部png编辑器中错误地编辑了9.png。

试试这个,在app gradle的android部分插入以下代码:

aaptOptions {  
    cruncherEnabled = false  
}

对我来说,解决这个问题的办法是

aaptOptions {  
    cruncherEnabled = false  
}
然后运行应用程序(缺少图标) 然后删除此选项并再次运行应用程序。
希望它对某人有所帮助。

尝试在您的defaultConfig中设置:

aaptOptions.setProperty("cruncherEnabled", false)
这对我很有用:

构建->清理项目

然后


生成->重建项目。

再次重命名文件

ic\u button\u beat\u box\u default.9.png
ic\u button\u box\u default9.png
因为android studio采用
ic\u button\u beat\u box\u default.9
而不是
ic\u button\u beat\u box\u default.9.png

或者另一个解决方案是将以下行添加到您的build.gradle(模块:app)


可能的复制我有这样的问题,检查图片的原始格式,并用原始格式更改它fotmat是JPEG这与Windows服务器上运行Bambol时的Windows路径长度限制有关。解决方案:在Linux上构建!与我使用macOS的解决方案相同。我刚刚将bla.png重命名为bla.9.png,然后在android studio中打开它,在内置编辑器中进行修改并保存。+1,用于编写
android{…}
键。我是react本地开发人员,对
build.gradle
结构知之甚少
android{
 aaptOptions {cruncherEnabled = false} 
}