XMPPConnection に次のコードを使用して、キーストア証明書を取得しています
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 のソースを見た後、私はそれが失敗していると思います
in = new FileInputStream(configuration.getTruststorePath());
それは、Android が TruststorePath を見つけることができないということですか? はいの場合、どこを指す必要がありますか?
すべてのブログは、上記のコードは機能するはずであり、トラスト ストアのパスを設定する必要はないと言っています。
何か案が?