TutorialsAndroid/FilePicker

java.lang.NullPointerException: Attempt to get length of null array

frederikpyt opened this issue · 0 comments

Logcat warn output:

2019-09-13 13:21:27.437 1155-1155/com.frederikmillingpytlick.container W/System.err: java.lang.NullPointerException: Attempt to get length of null array
2019-09-13 13:21:27.438 1155-1155/com.frederikmillingpytlick.container W/System.err:     at com.developer.filepicker.utils.Utility.prepareFileListEntries(Utility.java:29)
2019-09-13 13:21:27.439 1155-1155/com.frederikmillingpytlick.container W/System.err:     at com.developer.filepicker.view.FilePickerDialog.onStart(FilePickerDialog.java:212)
2019-09-13 13:21:27.439 1155-1155/com.frederikmillingpytlick.container W/System.err:     at android.app.Dialog.show(Dialog.java:323)
2019-09-13 13:21:27.440 1155-1155/com.frederikmillingpytlick.container W/System.err:     at com.developer.filepicker.view.FilePickerDialog.show(FilePickerDialog.java:389)
2019-09-13 13:21:27.440 1155-1155/com.frederikmillingpytlick.container W/System.err:     at com.frederikmillingpytlick.container.MainActivity.onMenuItemClick(MainActivity.java:201)
2019-09-13 13:21:27.441 1155-1155/com.frederikmillingpytlick.container W/System.err:     at android.widget.PopupMenu$1.onMenuItemSelected(PopupMenu.java:108)
2019-09-13 13:21:27.441 1155-1155/com.frederikmillingpytlick.container W/System.err:     at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:787)
2019-09-13 13:21:27.442 1155-1155/com.frederikmillingpytlick.container W/System.err:     at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:151)
2019-09-13 13:21:27.442 1155-1155/com.frederikmillingpytlick.container W/System.err:     at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:934)
2019-09-13 13:21:27.443 1155-1155/com.frederikmillingpytlick.container W/System.err:     at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:924)
2019-09-13 13:21:27.444 1155-1155/com.frederikmillingpytlick.container W/System.err:     at com.android.internal.view.menu.MenuPopup.onItemClick(MenuPopup.java:128)
2019-09-13 13:21:27.444 1155-1155/com.frederikmillingpytlick.container W/System.err:     at android.widget.AdapterView.performItemClick(AdapterView.java:330)
2019-09-13 13:21:27.445 1155-1155/com.frederikmillingpytlick.container W/System.err:     at android.widget.AbsListView.performItemClick(AbsListView.java:1190)
2019-09-13 13:21:27.445 1155-1155/com.frederikmillingpytlick.container W/System.err:     at android.widget.AbsListView$PerformClick.run(AbsListView.java:3198)
2019-09-13 13:21:27.446 1155-1155/com.frederikmillingpytlick.container W/System.err:     at android.widget.AbsListView$3.run(AbsListView.java:4116)
2019-09-13 13:21:27.448 1155-1155/com.frederikmillingpytlick.container W/System.err:     at android.os.Handler.handleCallback(Handler.java:883)
2019-09-13 13:21:27.449 1155-1155/com.frederikmillingpytlick.container W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:100)
2019-09-13 13:21:27.449 1155-1155/com.frederikmillingpytlick.container W/System.err:     at android.os.Looper.loop(Looper.java:214)
2019-09-13 13:21:27.454 1155-1155/com.frederikmillingpytlick.container W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:7356)
2019-09-13 13:21:27.454 1155-1155/com.frederikmillingpytlick.container W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
2019-09-13 13:21:27.455 1155-1155/com.frederikmillingpytlick.container W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
2019-09-13 13:21:27.455 1155-1155/com.frederikmillingpytlick.container W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

My implementation:


            case R.id.item1:
                DialogProperties properties = new DialogProperties();
                properties.selection_mode = DialogConfigs.MULTI_MODE;
                properties.selection_type = DialogConfigs.FILE_SELECT;
                properties.root = new File(Environment.DIRECTORY_PICTURES);
                properties.error_dir = new File(Environment.DIRECTORY_DOWNLOADS);
                properties.offset = new File(DialogConfigs.DEFAULT_DIR);

                FilePickerDialog dialog = new FilePickerDialog(MainActivity.this, properties);
                dialog.setTitle("Select a File");
                dialog.setDialogSelectionListener(new DialogSelectionListener() {
                    @Override
                    public void onSelectedFilePaths(String[] files) {
                        //files is the array of the paths of files selected by the Application User.
                       }
                });
                dialog.show();

                return true;

@Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) {
        switch (requestCode) {
            case FilePickerDialog.EXTERNAL_READ_PERMISSION_GRANT: {
                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    if(dialog!=null)
                    {   //Show dialog if the read permission has been granted.
                        dialog.show();
                    }
                }
                else {
                    //Permission has not been granted. Notify the user.
                    Toast.makeText(MainActivity.this,"Permission is Required for getting list of files",Toast.LENGTH_SHORT).show();
                }
            }
        }
    }