storage-chooser icon indicating copy to clipboard operation
storage-chooser copied to clipboard

java.lang.NullPointerException: Attempt to invoke virtual method 'int[] com.codekidlabs.storagechooser.models.Config.getScheme()'

Open ankitgupta199 opened this issue 4 years ago • 12 comments

1- Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{***}: java.lang.NullPointerException: Attempt to invoke virtual method 'int[] com.codekidlabs.storagechooser.models.Config.getScheme()' on a null object reference

2- java.lang.NullPointerException: Attempt to invoke virtual method 'com.codekidlabs.storagechooser.Content com.codekidlabs.storagechooser.models.Config.getContent()

3- Fatal Exception: java.lang.IndexOutOfBoundsException: Index: 4, Size: 4

4- Fatal Exception: java.lang.RuntimeException: An error occured while executing doInBackground()

5-Fatal Exception: java.lang.IllegalArgumentException: Invalid path: /storage/emulated/0

6-Caused by android.system.ErrnoException: statvfs failed: ENOENT (No such file or directory) at libcore.io.Posix.statvfs(Posix.java)

I am getting above errors for version 2.0.4.2, I am getting errors frequently and too much in my crashlytics, but not getting in actual when I test it on any device, how can I fix these errors as it's full log shows error in only this library?

ankitgupta199 avatar Jul 25 '19 10:07 ankitgupta199

  1. You are setting theme but you are not setting scheme

  2. line numbers are important for this, please paste full log

  3. Which file?

  4. Full log

  5. Which android version this came for? full log

  6. I think some user has a storage that is not supported by the statfs (example some chinese OEMs)

codekidX avatar Jul 26 '19 15:07 codekidX

I am mentioning here full log of my code for setting scheme and theme for 1st question- 1-(a) I tried to set scheme this way, also mentioning second way below

`StorageChooser.Theme theme = new StorageChooser.Theme(getActivity()); int[] myScheme = theme.getDefaultScheme(); // this is overview dialog list color myScheme[StorageChooser.Theme.OVERVIEW_HEADER_INDEX] = getActivity().getResources().getColor(R.color.colorAccent); myScheme[StorageChooser.Theme.OVERVIEW_BG_INDEX] = getActivity().getResources().getColor(R.color.white); myScheme[StorageChooser.Theme.OVERVIEW_INDICATOR_INDEX] = getActivity().getResources().getColor(R.color.c_252525); myScheme[StorageChooser.Theme.OVERVIEW_STORAGE_TEXT_INDEX] = getActivity().getResources().getColor(R.color.c_252525); myScheme[StorageChooser.Theme.OVERVIEW_TEXT_INDEX] = getActivity().getResources().getColor(R.color.white); myScheme[StorageChooser.Theme.OVERVIEW_MEMORYBAR_INDEX] = getActivity().getResources().getColor(R.color.colorAccent);

    // this is secondary dialog list color
    myScheme[StorageChooser.Theme.SEC_BG_INDEX] = getActivity().getResources().getColor(R.color.white);
    myScheme[StorageChooser.Theme.SEC_FOLDER_TINT_INDEX] = getActivity().getResources().getColor(R.color.colorAccent);
    myScheme[StorageChooser.Theme.SEC_ADDRESS_BAR_BG] = getActivity().getResources().getColor(R.color.c_c5c5c5);
    myScheme[StorageChooser.Theme.SEC_ADDRESS_TINT_INDEX] = getActivity().getResources().getColor(R.color.c_252525);
    myScheme[StorageChooser.Theme.SEC_FOLDER_CREATION_BG_INDEX] = getActivity().getResources().getColor(R.color.c_da6c6c);
    myScheme[StorageChooser.Theme.SEC_DONE_FAB_INDEX] = getActivity().getResources().getColor(R.color.colorAccent);
    myScheme[StorageChooser.Theme.SEC_SELECT_LABEL_INDEX] = getActivity().getResources().getColor(R.color.colorAccent);
    myScheme[StorageChooser.Theme.SEC_HINT_TINT_INDEX] = getActivity().getResources().getColor(R.color.colorAccent);
    myScheme[StorageChooser.Theme.SEC_TEXT_INDEX] = getActivity().getResources().getColor(R.color.c_252525);

    theme.setScheme(myScheme);

`

1- (b)- Second way-

StorageChooser.Theme theme = new StorageChooser.Theme(getActivity()); theme.setScheme(getResources().getIntArray(R.array.paranoid_theme));

Set scheme in Theme

StorageChooser chooser = new StorageChooser.Builder() .withActivity(getActivity()) .withFragmentManager(getFragmentManager()) .allowCustomPath(true) .setType(StorageChooser.FILE_PICKER) .filter(StorageChooser.FileType.DOCS) .withMemoryBar(true) .setTheme(theme) .build(); chooser.show();

In both cases I got same logs, mentioning below crash logs-

1- Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app/com.example.app.PdfActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int[] com.codekidlabs.storagechooser.models.Config.getScheme()' on a null object reference at android.app.ActivityThread.performLaunchActivity + 2817(ActivityThread.java:2817) at android.app.ActivityThread.handleLaunchActivity + 2895(ActivityThread.java:2895) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage + 1616(ActivityThread.java:1616) at android.os.Handler.dispatchMessage + 106(Handler.java:106) at android.os.Looper.loop + 176(Looper.java:176) at android.app.ActivityThread.main + 6651(ActivityThread.java:6651) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run + 547(RuntimeInit.java:547) at com.android.internal.os.ZygoteInit.main + 824(ZygoteInit.java:824)

2- Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'int[] com.codekidlabs.storagechooser.models.Config.getScheme()' on a null object reference at com.codekidlabs.storagechooser.fragments.SecondaryChooserFragment.getLayout + 335(SecondaryChooserFragment.java:335) at com.codekidlabs.storagechooser.fragments.SecondaryChooserFragment.onCreateDialog + 744(SecondaryChooserFragment.java:744) at android.app.DialogFragment.onGetLayoutInflater + 406(DialogFragment.java:406) at android.app.Fragment.performGetLayoutInflater + 1325(Fragment.java:1325) at android.app.FragmentManagerImpl.moveToState + 1279(FragmentManagerImpl.java:1279) at android.app.FragmentManagerImpl.moveFragmentToExpectedState + 1562(FragmentManagerImpl.java:1562) at android.app.FragmentManagerImpl.moveToState + 1623(FragmentManagerImpl.java:1623) at android.app.FragmentManagerImpl.dispatchMoveToState + 3032(FragmentManagerImpl.java:3032) at android.app.FragmentManagerImpl.dispatchActivityCreated + 2984(FragmentManagerImpl.java:2984) at android.app.FragmentController.dispatchActivityCreated + 178(FragmentController.java:178) at android.app.Activity.performCreate + 7094(Activity.java:7094) at android.app.Activity.performCreate + 7079(Activity.java:7079) at android.app.Instrumentation.callActivityOnCreate + 1215(Instrumentation.java:1215) at android.app.ActivityThread.performLaunchActivity + 2770(ActivityThread.java:2770) at android.app.ActivityThread.handleLaunchActivity + 2895(ActivityThread.java:2895) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage + 1616(ActivityThread.java:1616) at android.os.Handler.dispatchMessage + 106(Handler.java:106) at android.os.Looper.loop + 176(Looper.java:176) at android.app.ActivityThread.main + 6651(ActivityThread.java:6651) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run + 547(RuntimeInit.java:547) at com.android.internal.os.ZygoteInit.main + 824(ZygoteInit.java:824)

ankitgupta199 avatar Jul 27 '19 05:07 ankitgupta199

**Another Logs 2- Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app/com.example.app.activity.PdfActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'com.codekidlabs.storagechooser.Content com.codekidlabs.storagechooser.models.Config.getContent()' on a null object reference at android.app.ActivityThread.performLaunchActivity + 2830(ActivityThread.java:2830) at android.app.ActivityThread.handleLaunchActivity + 2909(ActivityThread.java:2909) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage + 1606(ActivityThread.java:1606) at android.os.Handler.dispatchMessage + 105(Handler.java:105) at android.os.Looper.loop + 164(Looper.java:164) at android.app.ActivityThread.main + 6592(ActivityThread.java:6592) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.Zygote$MethodAndArgsCaller.run + 240(Zygote.java:240) at com.android.internal.os.ZygoteInit.main + 769(ZygoteInit.java:769)


Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'com.codekidlabs.storagechooser.Content com.codekidlabs.storagechooser.models.Config.getContent()' on a null object reference at com.codekidlabs.storagechooser.fragments.ChooserDialogFragment.getLayout + 78(ChooserDialogFragment.java:78) at com.codekidlabs.storagechooser.fragments.ChooserDialogFragment.onCreateDialog + 299(ChooserDialogFragment.java:299) at android.app.DialogFragment.onGetLayoutInflater + 406(DialogFragment.java:406) at android.app.Fragment.performGetLayoutInflater + 1429(Fragment.java:1429) at android.app.FragmentManagerImpl.moveToState + 1276(FragmentManagerImpl.java:1276) at android.app.FragmentManagerImpl.moveFragmentToExpectedState + 1549(FragmentManagerImpl.java:1549) at android.app.FragmentManagerImpl.moveToState + 1611(FragmentManagerImpl.java:1611) at android.app.FragmentManagerImpl.dispatchMoveToState + 3039(FragmentManagerImpl.java:3039) at android.app.FragmentManagerImpl.dispatchActivityCreated + 2991(FragmentManagerImpl.java:2991) at android.app.FragmentController.dispatchActivityCreated + 178(FragmentController.java:178) at android.app.Activity.performCreateCommon + 6978(Activity.java:6978) at android.app.Activity.performCreate + 6986(Activity.java:6986) at android.app.Instrumentation.callActivityOnCreate + 1235(Instrumentation.java:1235) at android.app.ActivityThread.performLaunchActivity + 2783(ActivityThread.java:2783) at android.app.ActivityThread.handleLaunchActivity + 2909(ActivityThread.java:2909) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage + 1606(ActivityThread.java:1606) at android.os.Handler.dispatchMessage + 105(Handler.java:105) at android.os.Looper.loop + 164(Looper.java:164) at android.app.ActivityThread.main + 6592(ActivityThread.java:6592) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.Zygote$MethodAndArgsCaller.run + 240(Zygote.java:240) at com.android.internal.os.ZygoteInit.main + 769(ZygoteInit.java:769)


3- Fatal Exception: java.lang.IndexOutOfBoundsException: Index: 2, Size: 1 at java.util.ArrayList.get + 411(ArrayList.java:411) at com.codekidlabs.storagechooser.fragments.SecondaryChooserFragment$5$1.run + 153(SecondaryChooserFragment.java:153) at android.os.Handler.handleCallback + 836(Handler.java:836) at android.os.Handler.dispatchMessage + 103(Handler.java:103) at android.os.Looper.loop + 203(Looper.java:203) at android.app.ActivityThread.main + 6328(ActivityThread.java:6328) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 1076(ZygoteInit.java:1076) at com.android.internal.os.ZygoteInit.main + 937(ZygoteInit.java:937)


Fatal Exception: java.lang.IndexOutOfBoundsException: Invalid index 205, size is 0 at java.util.ArrayList.throwIndexOutOfBoundsException + 260(ArrayList.java:260) at java.util.ArrayList.get + 313(ArrayList.java:313) at com.codekidlabs.storagechooser.adapters.SecondaryChooserAdapter.getView + 73(SecondaryChooserAdapter.java:73) at android.widget.AbsListView.obtainView + 2570(AbsListView.java:2570) at android.widget.ListView.makeAndAddView + 1920(ListView.java:1920) at android.widget.ListView.fillUp + 751(ListView.java:751) at android.widget.ListView.fillGap + 690(ListView.java:690) at android.widget.AbsListView.trackMotionScroll + 5862(AbsListView.java:5862) at android.widget.AbsListView$FlingRunnable.run + 5323(AbsListView.java:5323) at android.view.Choreographer$CallbackRecord.run + 911(Choreographer.java:911) at android.view.Choreographer.doCallbacks + 713(Choreographer.java:713) at android.view.Choreographer.doFrame + 645(Choreographer.java:645) at android.view.Choreographer$FrameDisplayEventReceiver.run + 897(Choreographer.java:897) at android.os.Handler.handleCallback + 815(Handler.java:815) at android.os.Handler.dispatchMessage + 104(Handler.java:104) at android.os.Looper.loop + 207(Looper.java:207) at android.app.ActivityThread.main + 5790(ActivityThread.java:5790) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 1015(ZygoteInit.java:1015) at com.android.internal.os.ZygoteInit.main + 876(ZygoteInit.java:876)


4- Fatal Exception: java.lang.RuntimeException: An error occured while executing doInBackground() at android.os.AsyncTask$3.done + 304(AsyncTask.java:304) at java.util.concurrent.FutureTask.finishCompletion + 355(FutureTask.java:355) at java.util.concurrent.FutureTask.setException + 222(FutureTask.java:222) at java.util.concurrent.FutureTask.run + 242(FutureTask.java:242) at android.os.AsyncTask$SerialExecutor$1.run + 231(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker + 1112(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run + 587(ThreadPoolExecutor.java:587) at java.lang.Thread.run + 818(Thread.java:818)



Caused by java.lang.NullPointerException: Attempt to get length of null array at com.codekidlabs.storagechooser.filters.UniversalFileFilter.findInDirectory + 96(UniversalFileFilter.java:96) at com.codekidlabs.storagechooser.filters.UniversalFileFilter.accept + 51(UniversalFileFilter.java:51) at java.io.File.listFiles + 825(File.java:825) at com.codekidlabs.storagechooser.fragments.SecondaryChooserFragment$FileFilterTask.doInBackground$5f8445a4 + 821(SecondaryChooserFragment.java:821) at com.codekidlabs.storagechooser.fragments.SecondaryChooserFragment$FileFilterTask.doInBackground + 795(SecondaryChooserFragment.java:795) at android.os.AsyncTask$2.call + 292(AsyncTask.java:292) at java.util.concurrent.FutureTask.run + 237(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run + 231(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker + 1112(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run + 587(ThreadPoolExecutor.java:587) at java.lang.Thread.run + 818(Thread.java:818)


5-- (This crash came in version 7.1.2 for Mircomax- Canvas Infinity device) Fatal Exception: java.lang.IllegalArgumentException: Invalid path: /storage/emulated/0 at android.os.StatFs.doStat + 46(StatFs.java:46) at android.os.StatFs.(StatFs.java:39) at com.codekidlabs.storagechooser.utils.MemoryUtil.getTotalMemorySize + 71(MemoryUtil.java:71) at com.codekidlabs.storagechooser.fragments.ChooserDialogFragment.populateList + 256(ChooserDialogFragment.java:256) at com.codekidlabs.storagechooser.fragments.ChooserDialogFragment.initListView + 114(ChooserDialogFragment.java:114) at com.codekidlabs.storagechooser.fragments.ChooserDialogFragment.getLayout + 84(ChooserDialogFragment.java:84) at com.codekidlabs.storagechooser.fragments.ChooserDialogFragment.onCreateDialog + 299(ChooserDialogFragment.java:299) at android.app.DialogFragment.getLayoutInflater + 406(DialogFragment.java:406) at android.app.FragmentManagerImpl.moveToState + 995(FragmentManagerImpl.java:995) at android.app.FragmentManagerImpl.moveToState + 1171(FragmentManagerImpl.java:1171) at android.app.BackStackRecord.run + 832(BackStackRecord.java:832) at android.app.FragmentManagerImpl.execPendingActions + 1578(FragmentManagerImpl.java:1578) at android.app.FragmentManagerImpl$1.run + 483(FragmentManagerImpl.java:483) at android.os.Handler.handleCallback + 751(Handler.java:751) at android.os.Handler.dispatchMessage + 95(Handler.java:95) at android.os.Looper.TinnoLoop + 150(Looper.java:150) at android.os.Looper.loop + 208(Looper.java:208) at android.app.ActivityThread.main + 6175(ActivityThread.java:6175) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 889(ZygoteInit.java:889) at com.android.internal.os.ZygoteInit.main + 779(ZygoteInit.java:779)


6- Caused by android.system.ErrnoException: statvfs failed: ENOENT (No such file or directory) at libcore.io.Posix.statvfs(Posix.java) at libcore.io.BlockGuardOs.statvfs + 304(BlockGuardOs.java:304) at android.system.Os.statvfs + 506(Os.java:506) at android.os.StatFs.doStat + 44(StatFs.java:44) at android.os.StatFs.(StatFs.java:39) at com.codekidlabs.storagechooser.utils.MemoryUtil.getTotalMemorySize + 71(MemoryUtil.java:71) at com.codekidlabs.storagechooser.fragments.ChooserDialogFragment.populateList + 256(ChooserDialogFragment.java:256) at com.codekidlabs.storagechooser.fragments.ChooserDialogFragment.initListView + 114(ChooserDialogFragment.java:114) at com.codekidlabs.storagechooser.fragments.ChooserDialogFragment.getLayout + 84(ChooserDialogFragment.java:84) at com.codekidlabs.storagechooser.fragments.ChooserDialogFragment.onCreateDialog + 299(ChooserDialogFragment.java:299) at android.app.DialogFragment.getLayoutInflater + 406(DialogFragment.java:406) at android.app.FragmentManagerImpl.moveToState + 995(FragmentManagerImpl.java:995) at android.app.FragmentManagerImpl.moveToState + 1171(FragmentManagerImpl.java:1171) at android.app.BackStackRecord.run + 832(BackStackRecord.java:832) at android.app.FragmentManagerImpl.execPendingActions + 1578(FragmentManagerImpl.java:1578) at android.app.FragmentManagerImpl$1.run + 483(FragmentManagerImpl.java:483) at android.os.Handler.handleCallback + 751(Handler.java:751) at android.os.Handler.dispatchMessage + 95(Handler.java:95) at android.os.Looper.TinnoLoop + 150(Looper.java:150) at android.os.Looper.loop + 208(Looper.java:208) at android.app.ActivityThread.main + 6175(ActivityThread.java:6175) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 889(ZygoteInit.java:889) at com.android.internal.os.ZygoteInit.main + 779(ZygoteInit.java:779)**

ankitgupta199 avatar Jul 27 '19 12:07 ankitgupta199

@codekidX I had shared all logs, please check once and tell me about solutions.

ankitgupta199 avatar Jul 30 '19 12:07 ankitgupta199

1st things 1st upgrade to 2.0.4.4. These logs are pretty weird I'll separately test them with your code and let you know.

codekidX avatar Aug 02 '19 04:08 codekidX

Yes, I can upgrade in 2.0.4.4, but for that I have required to upgrade my all code in androidx, as I tried ,so I am doing that changes and that will take time to upgrade all code, but if possible then please tell me these logs solutions at least for 1 & 2 points, both logs are coming too frequently.

ankitgupta199 avatar Aug 02 '19 04:08 ankitgupta199

@codekidX- I upgragded library 2.0.4.4, but still getting crashes for above mentioned points, can you suggest me any solution.

ankitgupta199 avatar Nov 08 '19 05:11 ankitgupta199

@ankitgupta199 will you be willing to give me a screen recording of how you get this error. It would be helpful to identify on which step you get this crashes (if you have encountered it yourself).

Btw if any of the old users who did not update might be crashes, are you sure the users upgraded your app?

codekidX avatar Nov 09 '19 04:11 codekidX

Fixed in my fork branch, basicly what i do is if i got an exception i set the selected folder to default music folder (at least app doesnt crash because of this)

https://github.com/muzzikapp/storage-chooser

muzzikapp avatar Nov 09 '19 12:11 muzzikapp

@muzzikapp thanks for this, I'll handle it in current branch and create a release.

codekidX avatar Nov 10 '19 08:11 codekidX

@codekidX , I am not getting these crashes on my devices when I test it , but getting crash logs from crashlytics and firebase for others users who is using app, so I can provide you only these logs. Also I have upgraded this library for 2.0.4.4 and as per analytics I can track that 95% users upgraded app, and I am still getting same logs from upgraded users. Is there I need to make any change again in version or anywhere in library, please suggest me that?

ankitgupta199 avatar Dec 03 '19 05:12 ankitgupta199

Any Body Solve this Issu Please Share it

TehreemMasooman avatar Aug 09 '21 20:08 TehreemMasooman