Правильно, поэтому я хочу использовать Unirest на Android для быстрого тестирования, потому что он более легкий, чем, скажем, Volley.
(нужно запустить его на androidTest
, потому что я хочу протестировать некоторые android-соответствующие функции)
Итак ...
androidTestImplementation 'com.mashape.unirest:unirest-java:1.4.9'
приводит к
java.lang.NoSuchFieldError: No field INSTANCE of type Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; in class Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; or its superclasses (declaration of 'org.apache.http.conn.ssl.AllowAllHostnameVerifier' appears in /system/framework/framework.jar:classes3.dex)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144)
Право, что угодно.Поэтому я немного погуглю и в итоге нахожу этот ответ здесь.
звучит достаточно просто ...
androidTestImplementation'org.apache.httpcomponents:httpclient-android:4.3.5'
androidTestImplementation('com.mashape.unirest:unirest-java:1.4.9'){
exclude group: 'org.apache.httpcomponents', module:'httpclient'
}
, что дает мне
Ошибка: тип программы уже присутствует: org.apache.http.Consts
Итак, без exclude group: 'org.apache.httpcomponents', module:'httpclient'
он дает мне
Error: Program type already present: org.apache.http.auth.AuthOption
Iя бы подумал, что мне «просто» придется исключать модули, пока я не исключу все, что могло бы привести к конфликту.
Но как мне узнать, что это за модули?
О, и нет, я не могу просто исключить всю группу
androidTestImplementation'org.apache.httpcomponents:httpclient-android:4.3.5'
androidTestImplementation('com.mashape.unirest:unirest-java:1.4.9'){
exclude group: 'org.apache.httpcomponents'
}
Поскольку это приводит к
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/impl/nio/reactor/DefaultConnectingIOReactor;
at com.mashape.unirest.http.options.Options.refresh(Options.java:85)
at com.mashape.unirest.http.options.Options.<clinit>(Options.java:46)