java - 如何从 ProGuard 中排除注解处理器依赖

标签 java android proguard autofactory

我在尝试创建阻止构建成功完成的 Android 项目版本时收到 ProGuard 警告。

Warning: library class com.google.googlejavaformat.java.filer.FormattingJavaFileObject$1$1 extends or implements program class 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 仅作为 annotationProcessor 包含在我的 build.gradle 文件中,所以我不明白为什么它甚至被 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 配置文件中,以确保该库仅在代码生成期间使用,实际上并不需要发布。这没有效果。

我还查看了 online help ,但我不清楚如何按照建议将此依赖项指定为 -libraryjars 文件。

如何配置应用程序的 ProGuard 配置文件或其 build.gradle 文件以防止 ProGuard 在此库上阻塞?如果重要的话,我只是使用 ProGuard 删除未使用的代码而不执行任何混淆。

最佳答案

// Auto factory for Assisted Injection
annotationProcessor "com.google.auto.factory:auto-factory:${libs.autoFactoryVersion}"
provided "com.google.auto.factory:auto-factory:${libs.autoFactoryVersion}"

关于java - 如何从 ProGuard 中排除注解处理器依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46438502/

相关文章:

java - 从混淆器中排除包

java - Netbeans 6.9 的 SOA 插件

android 6系统警报权限..!

java - Listview需要显示数据库中的数据

android - 如何使用 Hilt 将 ViewModel 注入(inject)到 Activity 中?

java - Proguard 删除 com.sun.mail.imap.IMAPProvider

android - ProGuard:找不到引用的类 com.google.android.gms.R

Java通过指纹比较两个音频文件

java - 将 Swing 对象导入 Matlab

java - Kafka Producer - Spring Boot应用程序 - 无法生成消息