I am developing an Android app and using a library that in turn depends on RESTEasyClient
. When using the library at runtime, I get a NoSuchMethodError
:
java.lang.NoSuchMethodError: No direct method <init>(Ljavax/net/ssl/SSLContext;Lorg/apache/http/conn/ssl/X509HostnameVerifier;)V in class Lorg/apache/http/conn/ssl/SSLSocketFactory; or its super classes (declaration of 'org.apache.http.conn.ssl.SSLSocketFactory' appears in /system/framework/ext.jar)
at org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder.initDefaultEngine(ResteasyClientBuilder.java:418)
at org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder.build(ResteasyClientBuilder.java:333)
As I understand it, this is because of an incompatibility with Android's implementation of Apache HttpClient. Searching online, I have found various solutions revolving around including org.apache.httpconnections:httpclient
in the gradle dependencies and adding compile.exclude module: httpclient
(to resolve the resulting conflict) in several variations. I have tried all these and invariably run into either an error from gradle or the NoSuchMethodError
mentioned above.
Is it possible to successfully use RESTEasyClient
on Android? What steps do I need to take to enable this?