Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java &引用;IllegalArgumentException:SSLSocketFactory为空";在某些设备上,而在某些设备上不是?_Java_Android_Http_Ssl_Https - Fatal编程技术网

Java &引用;IllegalArgumentException:SSLSocketFactory为空";在某些设备上,而在某些设备上不是?

Java &引用;IllegalArgumentException:SSLSocketFactory为空";在某些设备上,而在某些设备上不是?,java,android,http,ssl,https,Java,Android,Http,Ssl,Https,我正在使用StartSSL提供的免费SSL证书。我将PEM编码证书添加到我的应用程序中 我的三部安卓手机(都是jellybean)都可以使用该实现,但三星Galaxy note 1(安卓版本4.0.4)不起作用 令人惊讶的是,它没有给出SSLException,而是给出了一个非法的argumentexception 更详细的例外情况 Caused by: java.lang.IllegalArgumentException: SSLSocketFactory is null at

我正在使用StartSSL提供的免费SSL证书。我将PEM编码证书添加到我的应用程序中

我的三部安卓手机(都是jellybean)都可以使用该实现,但三星Galaxy note 1(安卓版本4.0.4)不起作用

令人惊讶的是,它没有给出SSLException,而是给出了一个非法的argumentexception

更详细的例外情况

    Caused by: java.lang.IllegalArgumentException: SSLSocketFactory is null
    at javax.net.ssl.HttpsURLConnection.setSSLSocketFactory(HttpsURLConnection.java:282)
    at com.lovey.util.NetworkFunction.communicateString(NetworkFunction.java:288)
    at com.lovey.util.NetworkFunction.login(NetworkFunction.java:337)
    at com.lovey.classes.LoginAsync.doInBackground(LoginAsync.java:36)
    at com.lovey.classes.LoginAsync.doInBackground(LoginAsync.java:1)
    at android.os.AsyncTask$2.call(AsyncTask.java:264)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
我觉得一切都很好。读取资产中的证书的输入流工作正常

知道发生了什么吗?

这是通过在版本低于Jellybean的android设备上使用TLSv1.2实现的

请改用此源。同时让您的服务器接受TLSv1.0连接

if(Build.VERSION.SDK_INT<16)
    sslContext = SSLContext.getInstance("TLS");
else
    sslContext = SSLContext.getInstance("TLSv1.2");
if(Build.VERSION.SDK\u INT