2016-04-13 36 views
3
my post request 

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

        Callback<LoginSignupResponse> callback) 

我gradle这个com.squareup.okhttp.internal.http.HttpMethod.METHODS我造成的:java.lang.NoSuchFieldError的:在使用改装

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' 

也是我所有的后期服务有一个同样的错误

回答

4

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

对于翻新版1.x,最新的版本是1.9.0,并且您希望使用最新的okhttp 2.x,它现在是2.7.5。

虽然考虑迁移到改进2.x和okhttp 3.x。

+0

我改变我的gradle编译'com.squareup.retrofit:retrofit:1.9.0' compile'c​​om.squareup.okhttp:okhttp:2.7.5' compile'c​​om.squareup.okhttp:okhttp-urlconnection:2.5.0'并且我有一个错误再次java.lang.NoSuchMethodError:com.squareup.okhttp.internal.http.HttpEngine。 at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.newHttpEngine(HttpURLConnectionImpl.java:367) – hugerde

+0

urlconnection库版本应该与您的okhttp版本匹配。 – laalto

+0

谢谢@laalto – hugerde

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("https://stackoverflow.com/users/login-facebook") 
void loginFaceboook(@Field("token") String accessToken, @Field("fbId") String facebookId, @Field("platform") int platform, 

        Callback<LoginSignupResponse> callback) 
+0

我试过但没有任何改变 – hugerde

+0

我编辑了答案请尝试。如果你得到错误,请分享日志 –

+0

我添加了okio bot没有改变java.lang.NoSuchFieldError:com.squareup.okhttp.internal.http.HttpMethod.METHODS at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.setRequestMethod (HttpURLConnectionImpl.java:550) 在retrofit.client.UrlConnectionClient.prepareRequest(UrlConnectionClient.java:50) 在 – hugerde

0

下面尝试,而不是

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

而且,也没有必要把okhttp或graio中的okio条目。

相关问题