commons-app / apps-android-commons

The Wikimedia Commons Android app allows users to upload pictures from their Android phone/tablet to Wikimedia Commons
https://commons-app.github.io/
Apache License 2.0
1.01k stars 1.19k forks source link

Reproducible crash when in Nearby after selecting a picture for upload, on Samsung 10e but not Pixel 9 #5807

Open nicolas-raoul opened 3 weeks ago

nicolas-raoul commented 3 weeks ago

On Samsung S10e:

  1. Go to the "Nearby" tab
  2. Wait until you see a pin appear
  3. Tap the pin
  4. Tap the + button
  5. Choose any of the 3 buttons, then confirm the picture
  6. Instead of initiating the upload of that picture, I get a crash:

When choosing "camera" at step 5:

USER_COMMENT=
APP_VERSION_CODE=1040
APP_VERSION_NAME=5.0.2-debug-main
ANDROID_VERSION=9
PHONE_MODEL=SM-G970F
STACK_TRACE=java.lang.RuntimeException: Unable to start activity ComponentInfo{fr.free.nrw.commons/fr.free.nrw.commons.upload.UploadActivity}: java.lang.RuntimeException: Parcel android.os.Parcel@fdfd365: Unmarshalling unknown type code 7143533 at offset 1252
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3107)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3250)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1947)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7032)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@fdfd365: Unmarshalling unknown type code 7143533 at offset 1252
at android.os.Parcel.readValue(Parcel.java:2763)
at android.os.Parcel.readArrayMapInternal(Parcel.java:3053)
at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:288)
at android.os.BaseBundle.unparcel(BaseBundle.java:232)
at android.os.Bundle.getParcelableArrayList(Bundle.java:986)
at android.content.Intent.getParcelableArrayListExtra(Intent.java:8168)
at fr.free.nrw.commons.upload.UploadActivity.receiveInternalSharedItems(UploadActivity.java:720)
at fr.free.nrw.commons.upload.UploadActivity.receiveSharedItems(UploadActivity.java:459)
at fr.free.nrw.commons.upload.UploadActivity.checkStoragePermissions(UploadActivity.java:283)
at fr.free.nrw.commons.upload.UploadActivity.onCreate(UploadActivity.java:190)
at android.app.Activity.performCreate(Activity.java:7327)
at android.app.Activity.performCreate(Activity.java:7318)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3087)
... 11 more

When choosing "system picker" at step 5:

PHONE_MODEL=SM-G970F
STACK_TRACE=java.lang.RuntimeException: Failure delivering result ResultInfo{who=@android:requestPermissions:, request=42, result=-1, data=Intent { act=android.content.pm.action.REQUEST_PERMISSIONS (has extras) }} to activity {fr.free.nrw.commons/com.karumi.dexter.DexterActivity}: java.lang.RuntimeException: Parcel android.os.Parcel@7122df3: Unmarshalling unknown type code 7143533 at offset 1012
at android.app.ActivityThread.deliverResults(ActivityThread.java:4604)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4646)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1947)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7032)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@7122df3: Unmarshalling unknown type code 7143533 at offset 1012
at android.os.Parcel.readValue(Parcel.java:2763)
at android.os.Parcel.readArrayMapInternal(Parcel.java:3053)
at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:288)
at android.os.BaseBundle.unparcel(BaseBundle.java:232)
at android.os.Bundle.getParcelableArrayList(Bundle.java:986)
at android.content.Intent.getParcelableArrayListExtra(Intent.java:8168)
at fr.free.nrw.commons.upload.UploadActivity.receiveInternalSharedItems(UploadActivity.java:720)
at fr.free.nrw.commons.upload.UploadActivity.receiveSharedItems(UploadActivity.java:459)
at fr.free.nrw.commons.upload.UploadActivity.lambda$checkStoragePermissions$4$fr-free-nrw-commons-upload-UploadActivity(UploadActivity.java:292)
at fr.free.nrw.commons.upload.UploadActivity$$ExternalSyntheticLambda9.run(Unknown Source:2)
at fr.free.nrw.commons.utils.PermissionUtils$1.onPermissionsChecked(PermissionUtils.java:137)
at com.karumi.dexter.MultiplePermissionListenerThreadDecorator$1.run(Unknown Source:12)
at com.karumi.dexter.MainThread.execute(Unknown Source:11)
at com.karumi.dexter.MultiplePermissionListenerThreadDecorator.onPermissionsChecked(Unknown Source:11)
at com.karumi.dexter.DexterInstance.onPermissionsChecked(Unknown Source:75)
at com.karumi.dexter.DexterInstance.updatePermissionsAsGranted(Unknown Source:39)
at com.karumi.dexter.DexterInstance.onPermissionRequestGranted(Unknown Source:4)
at com.karumi.dexter.Dexter.onPermissionsRequested(Unknown Source:14)
at com.karumi.dexter.DexterActivity.onRequestPermissionsResult(Unknown Source:42)
at android.app.Activity.dispatchRequestPermissionsResult(Activity.java:7941)
at android.app.Activity.dispatchActivityResult(Activity.java:7763)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4597)

When choosing "custom picker" at step 5:

PHONE_MODEL=SM-G970F
STACK_TRACE=java.lang.RuntimeException: Unable to start activity ComponentInfo{fr.free.nrw.commons/fr.free.nrw.commons.upload.UploadActivity}: java.lang.RuntimeException: Parcel android.os.Parcel@89ff232: Unmarshalling unknown type code 7143533 at offset 820
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3107)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3250)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1947)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7032)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@89ff232: Unmarshalling unknown type code 7143533 at offset 820
at android.os.Parcel.readValue(Parcel.java:2763)
at android.os.Parcel.readArrayMapInternal(Parcel.java:3053)
at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:288)
at android.os.BaseBundle.unparcel(BaseBundle.java:232)
at android.os.Bundle.getParcelableArrayList(Bundle.java:986)
at android.content.Intent.getParcelableArrayListExtra(Intent.java:8168)
at fr.free.nrw.commons.upload.UploadActivity.receiveInternalSharedItems(UploadActivity.java:720)
at fr.free.nrw.commons.upload.UploadActivity.receiveSharedItems(UploadActivity.java:459)
at fr.free.nrw.commons.upload.UploadActivity.checkStoragePermissions(UploadActivity.java:283)
at fr.free.nrw.commons.upload.UploadActivity.onCreate(UploadActivity.java:190)
at android.app.Activity.performCreate(Activity.java:7327)
at android.app.Activity.performCreate(Activity.java:7318)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3087)
... 11 more

On Pixel 9 that does not happen somehow. If you want to work on this issue, first check whether you can reproduce it, thanks!