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:+' 

  • 改造ETAG和缓存
  • Android Picasso库,如何添加身份validation标头?
  • 既然在Android上不推荐使用SSLSocketFactory,那么处理客户端证书身份validation的最佳方法是什么?
  • 如何在从站点下载和解析XML文件时一起使用Retrofit和SimpleXML?
  • Android在内部使用OkHttp吗?
  • OkHttp javax.net.ssl.SSLPeerUnverifiedException:未validation主机名domain.com
  • 改造是否在主线程上进行networking调用?
  • 在Android中为OkHttp设置缓存的正确方法
  • 好的,广场已经发布了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:+' 

    然后我试着为我工作。