UnityNativeShare icon indicating copy to clipboard operation
UnityNativeShare copied to clipboard

getArgument() returns null on Android

Open JamesKim2998 opened this issue 4 years ago • 1 comments

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)

JamesKim2998 avatar Oct 18 '21 01:10 JamesKim2998

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?

yasirkula avatar Oct 18 '21 08:10 yasirkula