Monday, 4 June 2018

NoSuchMethodError when using RESTEasyClient on Android

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 NoSuchMethodErrormentioned above.
Is it possible to successfully use RESTEasyClient on Android? What steps do I need to take to enable this?


from NoSuchMethodError when using RESTEasyClient on Android

No comments:

Post a Comment