Android-XML-to-PDF-Generator icon indicating copy to clipboard operation
Android-XML-to-PDF-Generator copied to clipboard

Crash when saving is cancelled

Open anupam858 opened this issue 2 years ago • 1 comments

The library throws a Null Pointer exception if the save process is interrupted(rather than saving the file, press the back button). Exception Recieved java.lang.RuntimeException: Unable to resume activity {--projectActivity--}: java.lang.NullPointerException: uri at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3672) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3712) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1679) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6626) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811) Caused by: java.lang.NullPointerException: uri at com.android.internal.util.Preconditions.checkNotNull(Preconditions.java:128) at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1227) at android.content.ContentResolver.openFileDescriptor(ContentResolver.java:1100) at android.content.ContentResolver.openFileDescriptor(ContentResolver.java:1054) at com.gkemon.XMLtoPDF.PdfGenerator$Builder.writePDFOnSavedBlankPDFFile(PdfGenerator.java:445) at com.gkemon.XMLtoPDF.PdfGenerator$Builder.lambda$print$0$com-gkemon-XMLtoPDF-PdfGenerator$Builder(PdfGenerator.java:422) at com.gkemon.XMLtoPDF.PdfGenerator$Builder$$ExternalSyntheticLambda1.onBlankPDFCreatedInSharedStorage(Unknown Source:4) at com.gkemon.XMLtoPDF.PdfGenerator$XmlToPDFLifecycleObserver.lambda$onCreate$0$com-gkemon-XMLtoPDF-PdfGenerator$XmlToPDFLifecycleObserver(PdfGenerator.java:696) at com.gkemon.XMLtoPDF.PdfGenerator$XmlToPDFLifecycleObserver$$ExternalSyntheticLambda0.onActivityResult(Unknown Source:4) at androidx.activity.result.ActivityResultRegistry$1.onStateChanged(ActivityResultRegistry.java:149) at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:360) at androidx.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.java:271) at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.java:313) at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:151) at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.java:134) at androidx.lifecycle.ReportFragment.dispatch(ReportFragment.java:68) at androidx.lifecycle.ReportFragment.dispatch(ReportFragment.java:144) at androidx.lifecycle.ReportFragment.onStart(ReportFragment.java:109) at android.app.Fragment.performStart(Fragment.java:2534) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1315) at android.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1557) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1618) at android.app.FragmentManagerImpl.dispatchMoveToState(FragmentManager.java:3027) at android.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:2984) at android.app.FragmentController.dispatchStart(FragmentController.java:189) at android.app.Activity.performStart(Activity.java:7058) at android.app.Activity.performRestart(Activity.java:7127) at android.app.Activity.performResume(Activity.java:7132) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3647) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3712)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1679)  at android.os.Handler.dispatchMessage(Handler.java:106)  at android.os.Looper.loop(Looper.java:164)  at android.app.ActivityThread.main(ActivityThread.java:6626)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811) 

anupam858 avatar Mar 19 '23 11:03 anupam858

@anupam858 it will be handled and will show the proper message while leaving it from saving. Actually, it generates sometimes when context is null and it actually depends on device. So user need to handle this case from the app level i think. I might be wrong and if you get some good idea please share with me

Gkemon avatar May 16 '23 19:05 Gkemon