尝试创建我的 Android 项目的版本时,我收到了 ProGuard 警告,导致构建无法成功完成。
警告:库类 com.google.googlejavaformat.java.filer.FormattingJavaFileObject$1$1 扩展或实现程序类 com.google.common.io.CharSink
经过一番挖掘和运行gradlew :app:dependencies
,我发现google-java-format已经包含在内,因为它是由AutoFactory使用的,它是最近添加到项目中的。
+--- com.google.auto.factory:auto-factory:1.0-beta5
| +--- com.google.auto:auto-common:0.6 (*)
| +--- com.google.auto.value:auto-value:1.1 -> 1.3
| +--- com.google.googlejavaformat:google-java-format:1.1
AutoFactory 仅build.gradle
作为 annotationProcessor 包含在我的文件中,所以我不明白为什么它甚至被 ProGuard 处理。
provided "com.google.auto.factory:auto-factory:1.0-beta5"
annotationProcessor "com.google.auto.factory:auto-factory:1.0-beta5"
我尝试-dontwarn com.google.gooogleformat.**
在我的 ProGuard 配置文件中添加一个,认为该库仅在代码生成期间使用,并且实际上并不是发布所必需的。这没有效果。
我还查看了在线帮助,但我不清楚如何-libraryjars
按照建议将此依赖项指定为文件。
如何配置应用程序的 ProGuard 配置文件或其build.gradle
文件以防止 ProGuard 阻塞此库?如果重要的话,我只是使用 ProGuard 来删除未使用的代码而不执行任何混淆。