NoSuchMethod在Android上使用RESTEasyClient时的错误

2022-09-03 08:13:36

我正在开发一个Android应用程序,并使用一个依赖于.在运行时使用库时,我得到一个:RESTEasyClientNoSuchMethodError

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)

据我所知,这是因为与Android的Apache HttpClient实现不兼容。在网上搜索,我发现了各种解决方案,包括 gradle 依赖项,并以多种变体添加(以解决由此产生的冲突)。我已经尝试了所有这些,并且总是遇到来自gradle或上述的错误。org.apache.httpconnections:httpclientcompile.exclude module: httpclientNoSuchMethodError

是否有可能在Android上成功使用?我需要执行哪些步骤才能启用此功能?RESTEasyClient


答案 1

这一切都归结为版本。Android版本有点落后,并且在api中没有相同的方法签名。Apaches的建议是在构建文件中添加特定的版本4.3 +。

http://hc.apache.org/httpcomponents-client-4.3.x/android-port.html


答案 2

推荐