可能是一个简单的问题,使用one-sentecne-Solution ^^:.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”s而不是“哦不!”
问题是输入流,但为什么^^?
如果我尝试从流阅读
它实际上是while((is.read(byte[] somevar))!=-1)
。
编辑:
我是个白痴,忘记添加keyStore.getinstance(),没关系,我很累,多亏了gkuzmin ^^
答案 0 :(得分:0)
尝试这种方式:
keyStore = keyStore.getinstance();
if((keyStore != null) && (kspath != null)) {
File ksFile = new File(kspath);
FileInputStream is = new FileInputStream(ksFile);
keyStore.load(is, kspw.toCharArray());
}
但如果没有keystore
变量的对象定义,如果keystore为null或其他变量,则很难理解。
让我们发布。
答案 1 :(得分:-3)
嘿,您必须将文件路径指定为FileInputStream的参数而不是文件名 所以它应该是这样的
is = new FileInputStream(ksFile.getPath());