ProGuard不能很好地使用okhttp,我一直收到以下警告:
Warning:com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl: can't find referenced method 'long getContentLengthLong()' in program class com.squareup.okhttp.internal.huc.HttpURLConnectionImpl
Warning:com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl: can't find referenced method 'long getHeaderFieldLong(java.lang.String,long)' in program class com.squareup.okhttp.internal.huc.HttpURLConnectionImpl
Warning:com.squareup.okhttp.internal.huc.JavaApiConverter$CacheHttpsURLConnection: can't find referenced method 'long getContentLengthLong()' in program class com.squareup.okhttp.internal.huc.JavaApiConverter$CacheHttpURLConnection
Warning:com.squareup.okhttp.internal.huc.JavaApiConverter$CacheHttpsURLConnection: can't find referenced method 'long getHeaderFieldLong(java.lang.String,long)' in program class com.squareup.okhttp.internal.huc.JavaApiConverter$CacheHttpURLConnection
Warning:there were 4 unresolved references to program class members.
Your input classes appear to be inconsistent.
You may need to recompile the code.
(http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedprogramclassmember)
以下是我对okhttp和retrofit的proguard设置:
-dontwarn rx.**
-dontwarn okio.**
-dontwarn com.squareup.okhttp.*
-dontwarn retrofit.appengine.UrlFetchClient
-keep class retrofit.** { *; }
-keepclasseswithmembers class * {
@retrofit.http.* <methods>; }
-keepattributes Signature
-keepattributes *Annotation*
这可能与Android Studio1.0中对ProGuard的更改有关吗?
我尝试了相关问题的答案,但他们只建议使用我已有的设置。
发布于 2015-08-07 15:46:20
我终于能够解决这个问题了。
我遇到的警告实际上是没有意义的,可以忽略。
相反,我忘记了不要混淆我的模型类:
-keep class com.example.datamodel.** { *; }
在此更改之后,一切都运行得很好。
发布于 2014-12-14 06:57:42
它适用于我的这个配置。对于包含封装的子包的所有子类,使用**
而不是*
-dontwarn org.xmlpull.v1.**
-dontwarn com.squareup.**
-keep class com.squareup.** { *; }
发布于 2015-03-31 02:07:47
将此内容添加到您的proguard设置中:
-dontwarn com.squareup.okhttp.internal.huc.**
我认为可以安全地假设您没有使用com.squareup.okhttp.internal
中的任何类,因为您的警告就是从那里发出的。
https://stackoverflow.com/questions/27443241
复制相似问题