How to eliminate the dependence of the processor of annotations on ProGuard

I got a ProGuard warning when trying to create an release of my Android project that prevents the build from completing successfully.

Warning: the com.google.googlejavaformat.java.filer.FormattingJavaFileObject $ 1 $ 1 library class extends or implements the com.google.common.io.CharSink program class

After a bit of digging and running, gradlew :app:dependenciesI found that google-java-format is enabled because it is used by AutoFactory , which was recently added to the project.

+--- 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 is only included in my file build.gradleas an annotation processor, so I don’t understand why it is even processed by 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 .

+4
2

Android Studio 3.0 Android 3.0.0 Gradle Gradle 4.1. , proguard-rules.pro :

-dontwarn com.google.googlejavaformat.**
-dontwarn com.google.common.**

, , , com.google.googlejavaformat, .

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

Source: https://habr.com/ru/post/1686447/


All Articles