NoSuchMethodError如果我使用okhttp 2.0和最新的改造?

无法find从方法retrofit.client.OkClient.openConnection引用的方法com.squareup.okhttp.OkHttpClient.open。

下面是我的gradleconfiguration

compile 'com.squareup.okhttp:okhttp:+' compile 'com.squareup.okhttp:okhttp-urlconnection:+' compile 'com.squareup.retrofit:retrofit:+' 

Related of "NoSuchMethodError如果我使用okhttp 2.0和最新的改造?"

好的,广场已经发布了2.0的RC2在github上,但不是在maven上:

https://github.com/square/okhttp

但是你仍然需要okhttp-urlconnection(RC1现在),它只在maven上:

http://mvnrepository.com/artifact/com.squareup.okhttp

不要忘记okhttp 2.0现在依赖于okio:

https://github.com/square/okio

杰克·沃顿(Jake Wharton)在google +上的回答,我们可以这样做。 我在改造中丢弃了OkClient。

 public class RetrofitHttpClient extends UrlConnectionClient { private static final int CONNECT_TIMEOUT_MILLIS = 60 * 1000; // 30s private static final int READ_TIMEOUT_MILLIS = 85 * 1000; // 45s private static OkUrlFactory generateDefaultOkUrlFactory() { OkHttpClient client = new com.squareup.okhttp.OkHttpClient(); client.setConnectTimeout(CONNECT_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS); client.setReadTimeout(READ_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS); return new OkUrlFactory(client); } private final OkUrlFactory factory; public RetrofitHttpClient() { factory = generateDefaultOkUrlFactory(); } @Override protected HttpURLConnection openConnection(Request request) throws IOException { return factory.open(new URL(request.getUrl())); } } 

我testing了这个代码。 它工作正常。

添加

 compile 'com.squareup.okhttp:okhttp-urlconnection:1.6.0' compile 'com.squareup.retrofit:retrofit:+' 

到我的gradle帮我清除exception,但仍然无法加载与https的图像。

经过一些跟踪和错误的方法,我从我的gradle中删除了这个

 compile 'com.squareup.okhttp:okhttp:+' 

然后我试着为我工作。