おそらく簡単な問題で、1 つのセンテンス ソリューションを使用できます^^: どうすれば .load() で NullPointerException が発生するのでしょうか?
File ksFile=new File(kspath);
Log.d("kspath", kspath);
FileInputStream is=null;
is = new FileInputStream(ksFile/*kspath*/);
if(is==null)
Log.d("debug", "Oh no!");
if(ksFile.isFile())
Log.d("debug", "ok");
if(ksFile.canRead())
Log.d("debug", "ok");
if("".toCharArray()==null)
Log.d("debug", "Oh no!");
keyStore.load(is, kspw.toCharArray());
ご覧のとおり、ばかげたチェックが追加されています。2 つの「ok」と「oh no!」が表示されますが、問題は入力ストリームにありますが、なぜ ^^? ストリームから読み取ろうとすると
while((is.read(byte[] somevar))!=-1)
、実際に読み取られます。
編集:
私はばかです、keyStore.getinstance() を追加するのを忘れていました。