2017-05-26 64 views
0

我在我的android项目中打开了proguard,并在下面得到了警告。在Google上搜索,但找不到太多信息。使用Proguard改装警告

警告: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>; 
} 

回答

0

改变这样的:

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

改造页面已经注意到这个proguard的构建,基于Java虚拟机8上运行时:

为什么出现这种情况?

原因是: 编译器试图引用Java 8类,当你没有通过Proguard提到它时,在你明确提到它之后,Java 8类将不会被使用。 例如 包的java.nio。*的Java 8是不是适用于Android,将不会被调用

0

使用下面的改造2.3.0和3.8.0 okhttp

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