I am new to Java and android development. I am interested to build an app that can sync a folder from my android phone (Nexus5) to Amazon Web service (AWS). I am trying to build based on an open source project. But, I get the following error for this snippet and unable to locate my mistake. Your feedback will be highly useful at this point.
private void loadFileList(File path) {
this.currentPath = path;
List<String> r = new ArrayList<String>();
if (path.exists()) {
if (path.getParentFile() != null) r.add(PARENT_DIR);
FilenameFilter filter = new FilenameFilter() {
public boolean accept(File dir, String filename) {
File sel = new File(dir, filename);
if (!sel.canRead()) return false;
if (selectDirectoryOption) return sel.isDirectory();
else {
boolean endsWith = fileEndsWith != null ? filename.toLowerCase().endsWith(fileEndsWith) : true;
return endsWith || sel.isDirectory();
}
}
{
FileDialog a = FileDialog.this;
//a.super();
}
};
String[] fileList1 = path.list(filter);
for (String file : fileList1) { <-- Error in this line
r.add(file);
}
}
fileList = (String[]) r.toArray(new String[0]);
}
Error:
11-30 01:03:23.880 24102-24102/pavan.syncfile E/AndroidRuntime: FATAL EXCEPTION: main
11-30 01:03:23.880 24102-24102/pavan.syncfile E/AndroidRuntime: Process: pavan.syncfile, PID: 24102
11-30 01:03:23.880 24102-24102/pavan.syncfile E/AndroidRuntime: java.lang.NullPointerException: Attempt to get length of null array
11-30 01:03:23.880 24102-24102/pavan.syncfile E/AndroidRuntime: at pavan.syncfile.FileDialog.loadFileList(FileDialog.java:149)
11-30 01:03:23.880 24102-24102/pavan.syncfile E/AndroidRuntime: at pavan.syncfile.FileDialog.<init>(FileDialog.java:45)
11-30 01:03:23.880 24102-24102/pavan.syncfile E/AndroidRuntime: at pavan.syncfile.SendFile$1.onClick(SendFile.java:56)
11-30 01:03:23.880 24102-24102/pavan.syncfile E/AndroidRuntime: at android.view.View.performClick(View.java:5198)
11-30 01:03:23.880 24102-24102/pavan.syncfile E/AndroidRuntime: at android.view.View$PerformClick.run(View.java:21147)
11-30 01:03:23.880 24102-24102/pavan.syncfile E/AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:739)
11-30 01:03:23.880 24102-24102/pavan.syncfile E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:95)
11-30 01:03:23.880 24102-24102/pavan.syncfile E/AndroidRuntime: at android.os.Looper.loop(Looper.java:148)
11-30 01:03:23.880 24102-24102/pavan.syncfile E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5417)
11-30 01:03:23.880 24102-24102/pavan.syncfile E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
11-30 01:03:23.880 24102-24102/pavan.syncfile E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
11-30 01:03:23.880 24102-24102/pavan.syncfile E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)