NoSuchMethodError, если я использую okhttp 2.0 и последнюю модификацию?
не удалось найти метод com.squareup.okhttp.Охттпклиент.открыть, ссылка из модифицированной методике.клиент.Окклиент.содержащие вредоносные элементы.
ниже моя конфигурация gradle
compile 'com.squareup.okhttp:okhttp:+'
compile 'com.squareup.okhttp:okhttp-urlconnection:+'
compile 'com.squareup.retrofit:retrofit:+'
3 ответов
хорошо, square выпустила 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:
ответ Джейка Уортона в 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()));
}
}
я протестировал этот код. это отличная работа.
добавлять
compile 'com.squareup.okhttp:okhttp-urlconnection:1.6.0'
compile 'com.squareup.retrofit:retrofit:+'
чтобы мой gradle помог мне очистить исключение, но все равно не смог загрузить изображение с https.
после некоторого метода следа и ошибки я удалил это из моего gradle
compile 'com.squareup.okhttp:okhttp:+'
затем я попробовал это сработало для меня.