微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从ProGuard中排除注释处理器依赖项

在尝试创建我的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}"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐