Gradle 升级到 7.x 之后,发现 build 会失败,日志大概如下:
Task :app:shrinkDevInhouseQaRes FAILED
FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':app:shrinkDevInhouseQaRes'.
A failure occurred while executing com.android.build.gradle.internal.transforms.ShrinkProtoResourcesAction
ParseError at [row,col]:[1,1]
Message: 前言中不允许有内容。
Try:
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:shrinkDevInhouseQaRes'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:142)
at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282)
原因是 Gradle 7.x 版本使用的新版本的 shrinker,它可能是有 bug,所以禁用它,使用老版本的 shrinker 即可。
解决方法:
在 gradle.properties 文件中加入一行:
android.enableNewResourceShrinker=false