首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ProGuard不能使用okhttp

ProGuard不能使用okhttp
EN

Stack Overflow用户
提问于 2014-12-12 20:01:41
回答 6查看 19.6K关注 0票数 24

ProGuard不能很好地使用okhttp,我一直收到以下警告:

代码语言:javascript
复制
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设置:

代码语言:javascript
复制
-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的更改有关吗?

我尝试了相关问题的答案,但他们只建议使用我已有的设置。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-08-07 15:46:20

我终于能够解决这个问题了。

我遇到的警告实际上是没有意义的,可以忽略。

相反,我忘记了不要混淆我的模型类:

代码语言:javascript
复制
-keep class com.example.datamodel.** { *; }

在此更改之后,一切都运行得很好。

票数 11
EN

Stack Overflow用户

发布于 2014-12-14 06:57:42

它适用于我的这个配置。对于包含封装的子包的所有子类,使用**而不是*

代码语言:javascript
复制
-dontwarn org.xmlpull.v1.**
-dontwarn com.squareup.**
-keep class com.squareup.** { *; }
票数 1
EN

Stack Overflow用户

发布于 2015-03-31 02:07:47

将此内容添加到您的proguard设置中:

代码语言:javascript
复制
-dontwarn com.squareup.okhttp.internal.huc.**

我认为可以安全地假设您没有使用com.squareup.okhttp.internal中的任何类,因为您的警告就是从那里发出的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27443241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档