在我的应用程序中,我通过SSL与web服务进行通信。因为我使用的是不是由Android默认支持多部分实体我包括以下库:创建SSL套接字时发生NullPointerException
- 的HttpClient-4.1.1.jar
- 的HttpCore-4.1.jar
- httpmime-4.1.1。 jar
服务器使用由android支持的权限签名的证书。这在大多数设备上都可以工作。今天我的用户(Android 2.2的摩托罗拉Defy)的人送我,包含以下日志:
W/System.err(2328): Caused by: java.lang.NullPointerException
W/System.err(2328): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketFactoryImpl.createSocket(OpenSSLSocketFactoryImpl.java:83)
W/System.err(2328): at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:375)
W/System.err(2328): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:168)
W/System.err(2328): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
W/System.err(2328): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
W/System.err(2328): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:352)
W/System.err(2328): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
W/System.err(2328): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
W/System.err(2328): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
W/System.err(2328): at my.api.Client.sendRequest(Client.java)
...
我不能在我的设备复制这一点,我不知道为什么会这样。我查看了OpenSSLSocketFactoryImpl的源代码,并且NullPointerException可能来自的唯一的一点是因为sslParameters
是null
。你有什么想法可以在我的代码中解决这个异常吗?
如果你不知道如何解决问题,但有一个想法什么问谁发送日志给我的用户,请也请回答。 我已经问他,当他试图通过https访问网站时,他的浏览器是否显示错误消息。我一收到答复就会在这里附上答复。
您好,我知道这是真的老了,但你有没有设法找到解决办法? – tehmaestro 2015-09-26 08:45:54