react-native-share: Crash on Android after sharing to Google Drive

Steps to reproduce

  1. Share to Google Drive using:
const result = await Share.open({
      message: "message",
      subject: "subject",
      title: "title"
    });
  1. Wait for the callback
  2. App crashes Before the crash, I can see the result:
{
app: "com.google.android.apps.docs/com.google.android.apps.docs.shareitem.UploadMenuActivity", 
message: "com.google.android.apps.docs/com.google.android.apps.docs.shareitem.UploadMenuActivity"
}

Error on logcat:

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=16845, result=-1, data=Intent { dat=content://com.google.android.apps.docs.storage.legacy/enc=hwS2P-QLZXeplE6wliNceO9lduRF6MaJHht7KkEMtWX-olNpX0S5laUmKOPmMBE0NnnhjD_ZzRB0 LS-zLUFkB4eE8DPDjGNP01YlUizxqUo3xx8b3oenNLEPzQhPYToVt1Crhw== launchParam=MultiScreenLaunchParams { mDisplayId=0 mBaseDisplayId=0 mFlags=0 } (has extras) }} to activity {br.com.test/br.com.test.MainActivity}: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: com.google.android.apps.docs.cello.data.CelloEntrySpec at android.app.ActivityThread.deliverResults(ActivityThread.java:4520) at android.app.ActivityThread.handleSendResult(ActivityThread.java:4563) at android.app.ActivityThread.-wrap22(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1698) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6776) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) Caused by: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: com.google.android.apps.docs.cello.data.CelloEntrySpec at android.os.Parcel.readParcelableCreator(Parcel.java:2555) at android.os.Parcel.readParcelable(Parcel.java:2481) at android.os.Parcel.readValue(Parcel.java:2384) at android.os.Parcel.readArrayMapInternal(Parcel.java:2737) at android.os.BaseBundle.unparcel(BaseBundle.java:269) at android.os.BaseBundle.getString(BaseBundle.java:992) at android.content.Intent.getStringExtra(Intent.java:6749) at com.facebook.internal.CallbackManagerImpl.isPurchaseIntent(CallbackManagerImpl.java:130) at com.facebook.internal.CallbackManagerImpl.onActivityResult(CallbackManagerImpl.java:90)

Expected behaviour

Application should not crash

Actual behaviour

Application is crashing

Environment

  • React Native version: 0.59.8
  • React Native platform + platform version: Android (multiple versions)

react-native-share

Version: 1.2.1

Important

If I downgrade react-native-share version to 1.1.3, it works.

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 16 (1 by maintainers)

Most upvoted comments

I think it should use startActivity for ACTION_SEND instead of startActivityForResult.

However, it will not know the user cancel it or not. It means that failOnCancel will be useless. It works for my use case, I’m not sure it also works for others?

Find a solution.

Modify below code in social/ShareIntent.java

Change

        activity.startActivityForResult(chooser, RNShareModule.SHARE_REQUEST_CODE);

To

        activity.startActivity(chooser);