I was having some trouble when trying to read zip file from Android external SD card.
Here is my code:
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;
}
And my emulator folder structure:
The zip folder is there. But with the code above, I am getting error message like:
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)
The error is pointing to the first for loop. It was working last time. But after I tried the newer version installation code, the method above breaks. Any ideas?
Thanks!