在我的应用程序中,我集成了两个库,即聊天和视频调用...问题是当我先打开视频库时,然后聊天和视频调用库都可以正常工作,但是当我先打开聊天库时,然后打开视频,这会导致异常...我认为默认的trustmanger套接字存在问题。
我在视频通话库中用于创建sslcontext的示例代码
trustManagers = new TrustManager[]{new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
}
};
try {
sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, trustManagers, null);
} catch (NoSuchAlgorithmException | KeyManagementException e) {
e.printStackTrace();
}
我得到的例外: java.lang.IllegalStateException:无法在AndroidPlatform上提取信任管理器,sslSocketFactory为org.conscrypt.OpenSSLSocketFactoryImpl类。请帮助任何一个人。
答案 0 :(得分:1)
在我的情况下,当我以这种方式使用https://stackoverflow.com/a/50264472/2914140时,它发生在模拟器API 16上:
val sslcontext: SSLContext = SSLContext.getInstance("TLSv1.2")
sslcontext.init(null, null, null)
val tlsSocketFactory = TLSSocketFactory()
val okHttpClient = OkHttpClient().newBuilder()
.sslSocketFactory(tlsSocketFactory)
.build()
当我向sslSocketFactory
方法中添加trustManager参数时,该异常消失。但是SSL连接问题不会消失。