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!

 
    