使用Proguard进行改造警告

时间:2017-05-26 08:29:57

标签: android proguard android-proguard

我在我的android项目中转向了proguard并得到了下面的警告。在Google上搜索但找不到太多信息。

  

警告:retrofit.Platform $ Java8:找不到引用的类   org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement

我已将retrofit2 proguard规则放在我的项目中。

-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions

-keepclasseswithmembers class * {
    @retrofit2.http.* <methods>;
}

2 个答案:

答案 0 :(得分:1)

对Retrofit 2.3.0和okhttp 3.8.0使用以下程序规则

-dontnote retrofit2.Platform
-dontwarn retrofit2.Platform$Java8adapters.
-keepattributes Signature
-keepattributes Exceptions
-dontwarn org.xmlpull.v1.**
-dontwarn okhttp3.**
-dontwarn okio.**
-dontwarn javax.annotation.**

答案 1 :(得分:0)

像这样改变:

-dontwarn okio.**
-dontwarn retrofit2.Platform$Java8

当在Java 8 VM上运行时,Retrofit页面已经注意到这个proguard构建:

为什么会这样?

原因是: 编译器尝试引用Java 8类,当你没有通过Proguard提及它时,在你明确提到它之后,将不会使用Java 8类。 例如 Java 8的java.nio。*包在Android上不可用,永远不会被称为