Android 为什么在将可绘制文件重命名为.9.png后,文件处理失败?
我正在测试9-patch图像。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
在一切正常之前,我将
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}
}