尝试从Android外部SD卡读取zip文件时遇到了一些麻烦。
这是我的代码:
File[] fileArr = mVersionUpgradeViewModel.getZipFileFromSDCard();
for(int i = 0; i < fileArr.length; i++){
System.out.println(fileArr[i]);
}
public File[] getZipFileFromSDCard() {
File[] matchingFiles = new File[0];
File f = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
if(f.exists()) {
matchingFiles = f.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith("zip");
}
});
}
return matchingFiles;
}
和我的模拟器文件夹结构:
zip文件夹在那里。 但是使用上面的代码,我收到如下错误消息:
Caused by: java.lang.NullPointerException: Attempt to get length of null array
at com.mainapp.asynctask.VersionUpgradeTask.doInBackground(VersionUpgradeTask.java:86)
at com.mainapp.asynctask.VersionUpgradeTask.doInBackground(VersionUpgradeTask.java:15)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
错误指向第一个for循环。 上次在工作。 但是,当我尝试使用较新版本的安装代码后,以上方法就中断了。 有任何想法吗?
谢谢!