當試圖創建我的Android項目發行版以防止構建成功完成時,我收到了一條ProGuard警告。如何從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的配置文件搞清楚該庫的代碼生成過程中只使用,不實際需要的釋放。這沒有效果。
我也看過online help,但我不清楚如何指定這種依賴作爲-libraryjars
文件建議。
如何配置應用程序的ProGuard配置文件或其build.gradle
文件以防止ProGuard窒息此庫?如果它很重要,我只需使用ProGuard刪除未使用的代碼並不執行任何混淆處理。
這似乎沒有解決問題。我們最近通過Android 3.0.0 Gradle插件和Gradle 4.1升級到了Android Studio 3.0,這很複雜。 –
請嘗試提供。它運行良好 – user1820178
我們已經試着用「提供」而不是「編譯」,但這對ProGuard沒有什麼影響。要清楚,我們的問題不是使用AutoFactory批註處理器,而是配置ProGuard在創建版本構建時忽略它的依賴關係。 –