引起:java.lang.NoSuchFieldError:com.squareup.okhttp.internal.http.HttpMethod.METHODS当我使用改造时

时间:2016-04-13 12:48:20

标签: java android retrofit httpurlconnection

my post request 

@POST("/users/login-facebook")
@FormUrlEncoded
void loginFaceboook(@Field("token") String accessToken, @Field("fbId") String facebookId, @Field("platform") int platform,

                    Callback<LoginSignupResponse> callback)

我的傻瓜

   compile 'com.squareup.okhttp:okhttp:2.0.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
 compile 'com.squareup.retrofit:retrofit:1.6.1'

我的所有邮政服务都有同样的错误

3 个答案:

答案 0 :(得分:4)

您的依赖版本很古老且不兼容。

对于改装1.x,最新的是1.9.0,你想使用最新的okhttp 2.x,目前是2.7.5。

考虑迁移到2.x和okhttp 3.x进行改造。

答案 1 :(得分:1)

试试这个,

把它放在gradle中:

 compile 'com.squareup.retrofit:retrofit:1.6.1'
compile 'com.squareup.okhttp:okhttp:2.0.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0-RC1'
compile 'com.squareup.okio:okio:1.0.0'

@FormUrlEncoded
@POST("/users/login-facebook")
void loginFaceboook(@Field("token") String accessToken, @Field("fbId") String facebookId, @Field("platform") int platform,

                    Callback<LoginSignupResponse> callback)

答案 2 :(得分:0)

请尝试以下

编译'com.squareup.retrofit:retrofit:1.9.0'

此外,无需在gradle中输入okhttp或okio的条目。