【发布时间】:2013-05-23 00:55:27
【问题描述】:
我正在为 XMPPConnection 使用以下代码来获取 Keystore 证书
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
conf.setTruststoreType("AndroidCAStore");
conf.setTruststorePassword(null);
conf.setTruststorePath(null);
}
此代码工作正常,我可以验证用户。但它也会抛出以下异常作为警告
W/System.err(18470): java.lang.NullPointerException
W/System.err(18470): at java.io.File.fixSlashes(File.java:185)
W/System.err(18470): at java.io.File.<init>(File.java:134)
W/System.err(18470): at java.io.FileInputStream.<init> FileInputStream.java:105)
W/System.err(18470): at org.jivesoftware.smack.ServerTrustManager.<init>(ServerTrustManager.java:71)
W/System.err(18470): at org.jivesoftware.smack.XMPPConnection.proceedTLSReceived(XMPPConnection.java:871)
W/System.err(18470): at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:221)
查看 ServerTrustManager 的 source 后,我怀疑它在
in = new FileInputStream(configuration.getTruststorePath());
这是否意味着android无法找到TruststorePath,如果是,我应该将它指向哪里。
所有博客都说上面的代码应该可以工作,您不需要为信任库设置路径。
有什么想法吗?
【问题讨论】:
-
这个问题在我使用他们自己网站上的最新版本的 ASmack 库后得到解决。
标签: android xmpp keystore asmack