getArgument() returns null on Android
Description of the bug
Crash on Android caused by getArgument() returns null.
Reproduction steps
Unknown
Platform specs
- Unity version: 2021.1.23f1
- Platform: Android
- Device: Pixel 3 XL, Portrait, Android 9
- How did you download the plugin: Unity Package Manager
Additional info
Caused by java.lang.NullPointerException
Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference
com.yasirkula.unity.NativeShare.CreateIntentFromBundle (NativeShare.java:95)
com.yasirkula.unity.NativeShareCustomShareDialog.onCreateDialog (NativeShareCustomShareDialog.java:80)
android.app.DialogFragment.onGetLayoutInflater (DialogFragment.java:411)
android.app.Fragment.performGetLayoutInflater (Fragment.java:1339)
android.app.FragmentManagerImpl.moveToState (FragmentManager.java:1298)
android.app.FragmentManagerImpl.addAddedFragments (FragmentManager.java:2426)
android.app.FragmentManagerImpl.executeOpsTogether (FragmentManager.java:2205)
android.app.FragmentManagerImpl.removeRedundantOperationsAndExecute (FragmentManager.java:2161)
android.app.FragmentManagerImpl.execPendingActions (FragmentManager.java:2062)
android.app.FragmentManagerImpl.dispatchMoveToState (FragmentManager.java:3051)
android.app.FragmentManagerImpl.dispatchStart (FragmentManager.java:3003)
android.app.FragmentController.dispatchStart (FragmentController.java:193)
android.app.Activity.performStart (Activity.java:7173)
android.app.ActivityThread.handleStartActivity (ActivityThread.java:2975)
android.app.servertransaction.TransactionExecutor.performLifecycleSequence (TransactionExecutor.java:180)
android.app.servertransaction.TransactionExecutor.cycleToPath (TransactionExecutor.java:165)
android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:142)
android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:70)
android.app.ActivityThread$H.handleMessage (ActivityThread.java:1816)
android.os.Handler.dispatchMessage (Handler.java:106)
android.os.Looper.loop (Looper.java:193)
android.app.ActivityThread.main (ActivityThread.java:6718)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:493)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858)
Thank you for the detailed Issue.
The Bundle is passed from this line: https://github.com/yasirkula/UnityNativeShare/blob/9b1575d6e126b98b79b58c487e8cfd09125d1e3b/.github/AAR%20Source%20(Android)/java/com/yasirkula/unity/NativeShare.java#L76-L77
To this line: https://github.com/yasirkula/UnityNativeShare/blob/9b1575d6e126b98b79b58c487e8cfd09125d1e3b/.github/AAR%20Source%20(Android)/java/com/yasirkula/unity/NativeShareCustomShareDialogActivity.java#L36-L37
And is finally used at the line that the stacktrace points at: https://github.com/yasirkula/UnityNativeShare/blob/9b1575d6e126b98b79b58c487e8cfd09125d1e3b/.github/AAR%20Source%20(Android)/java/com/yasirkula/unity/NativeShare.java#L93-L95
At the moment, I don't know what sort of silly Android bug is turning this Bundle into a null nothingness. Is it something that you can continuously reproduce on your test device, did it occur once in a 1000 runs, or if you've pulled the crash information from Google Play, how often has this crash reportedly occurred?