Androidpn Client启动连接时出现如下异常:
04-16 09:59:08.555: W/System.err(1287): java.security.KeyStoreException: java.security.NoSuchAlgorithmException: KeyStore jks implementation not found
04-16 09:59:08.555: W/System.err(1287): at java.security.KeyStore.getInstance(KeyStore.java:119)
04-16 09:59:08.563: W/System.err(1287): at org.jivesoftware.smack.ServerTrustManager.<init>(ServerTrustManager.java:61)
04-16 09:59:08.563: W/System.err(1287): at org.jivesoftware.smack.XMPPConnection.proceedTLSReceived(XMPPConnection.java:841)
04-16 09:59:08.563: W/System.err(1287): at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:277)
04-16 09:59:08.573: W/System.err(1287): at org.jivesoftware.smack.PacketReader.access$1(PacketReader.java:230)
04-16 09:59:08.573: W/System.err(1287): at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:76)
04-16 09:59:08.573: W/System.err(1287): Caused by: java.security.NoSuchAlgorithmException: KeyStore jks implementation not found
04-16 09:59:08.573: W/System.err(1287): at org.apache.harmony.security.fortress.Engine.notFound(Engine.java:177)
04-16 09:59:08.573: W/System.err(1287): at org.apache.harmony.security.fortress.Engine.getInstance(Engine.java:151)
04-16 09:59:08.583: W/System.err(1287): at java.security.KeyStore.getInstance(KeyStore.java:116)
04-16 09:59:08.583: W/System.err(1287): ... 5 more
这是因为Androidpn默认还是使用了SASL认证,而我们不需要此认证,故修改XmppManager 的ConnectTask,设置ConnectionConfiguration如下:
connConfig.setSecurityMode(SecurityMode.disabled);//设置为disabled
connConfig.setSASLAuthenticationEnabled(false);//设置为false
connConfig.setCompressionEnabled(false);
XMPPConnection connection = new XMPPConnection(connConfig);
xmppManager.setConnection(connection);