小编O.O*_*nce的帖子

在Android上使用RESTEasyClient时出现NoSuchMethodError

我正在开发一个Android应用程序并使用依赖于它的库RESTEasyClient.在运行时使用库时,我得到一个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)
Run Code Online (Sandbox Code Playgroud)

据我了解,这是因为与Android的Apache HttpClient实现不兼容.在线搜索,我发现了各种解决方案,包括org.apache.httpconnections:httpclient在gradle依赖项中,并compile.exclude module: httpclient在几个变体中添加(以解决由此产生的冲突).我已经尝试了所有这些并且总是遇到gradle或NoSuchMethodError上面提到的错误.

是否可以RESTEasyClient在Android 上成功使用?我需要采取哪些步骤才能启用此功能?

java android nosuchmethoderror resteasy

16
推荐指数
1
解决办法
282
查看次数

如何在Android中模拟Base64?

我正在为一个使用的类编写单元测试android.util.Base64,我得到了这个错误:

java.lang.RuntimeException: Method encode in android.util.Base64 not mocked. See http://g.co/androidstudio/not-mocked for details.
at android.util.Base64.encode(Base64.java)
Run Code Online (Sandbox Code Playgroud)

这是使用该encode()方法的代码:

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
// [write some data to the stream]
byte[] base64Bytes = Base64.encode(byteArrayOutputStream.toByteArray(), Base64.DEFAULT);
Run Code Online (Sandbox Code Playgroud)

现在我明白我不能在单元测试中使用Android库类.但是我如何正确地模拟,Base64所以我可以为我的班级编写正确的单元测试?

junit base64 android mocking mockito

5
推荐指数
3
解决办法
3924
查看次数

标签 统计

android ×2

base64 ×1

java ×1

junit ×1

mocking ×1

mockito ×1

nosuchmethoderror ×1

resteasy ×1