OpenTracks crashes when leaving the export screen (ExportActivity).
The crash occurs during activity destruction. According to the stack trace, ExportActivity.onDestroy() calls ArrayList.clear() on a null object, resulting in a NullPointerException.
Exception in thread "main": java.lang.RuntimeException: Unable to destroy activity {de.dennisguse.opentracks/de.dennisguse.opentracks.io.file.exporter.ExportActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void java.util.ArrayList.clear()' on a null object reference
Caused by:
java.lang.NullPointerException: Attempt to invoke virtual method 'void java.util.ArrayList.clear()' on a null object reference
at de.dennisguse.opentracks.io.file.exporter.ExportActivity.onDestroy(ExportActivity.java:220)
Exception in thread "main": java.lang.RuntimeException: Unable to destroy activity {de.dennisguse.opentracks/de.dennisguse.opentracks.io.file.exporter.ExportActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void java.util.ArrayList.clear()' on a null object reference
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:5620)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:5653)
at android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:47)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2420)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:211)
at android.os.Looper.loop(Looper.java:300)
at android.app.ActivityThread.main(ActivityThread.java:8227)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void java.util.ArrayList.clear()' on a null object reference
at de.dennisguse.opentracks.io.file.exporter.ExportActivity.onDestroy(ExportActivity.java:220)
at android.app.Activity.performDestroy(Activity.java:8835)
at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1472)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:5607)
... 13 more
Technical information
Device: POCO M3 Pro 5G (M2103K19PG)
OS: Android 13 (MIUI Global V14.0.4.0.TKSEUXM)
OpenTracks version: 4.27.2 (6682)
OpenTracks commit id: irreproducible (build reports 6682 v4.27.2irreproducible)
Additional notes
The crash occurs during ExportActivity.onDestroy(), not during the actual export process.
The exported file appears to be created successfully before the crash.
The exception suggests that one of the internal ArrayList instances is not initialized (or has already been cleared) before clear() is called in onDestroy().