2016-04-13 61 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條目。

相關問題