OneSignal / OneSignal-Android-SDK

OneSignal is a free push notification service for mobile apps. This plugin makes it easy to integrate your native Android or Amazon app with OneSignal. https://onesignal.com
Other
592 stars 368 forks source link

OneSignal.openDestinationActivity[Bug]: #2096

Open laraibsaghir0 opened 1 month ago

laraibsaghir0 commented 1 month ago

What happened?

cant replicate the issue.

Steps to reproduce?

Saw this issue in firebase crashlytics. Dont know any reason why it occured.

What did you expect to happen?

I expected the app not to crash.

OneSignal Android SDK version

4.8.7

Android version

11, 10, 9

Specific Android models

Galaxy S8
Galaxy Note8
Galaxy A8+(2018)
Galaxy S8+
Infinix Zero X NEO
Infinix HOT 9 Play

Relevant log output

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mynayatel/com.onesignal.NotificationOpenedReceiver}: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.VIEW dat=https://nayatv.nayatel.com/... flg=0x10000000 cmp=team.opay.pay.pakistan/.module.web.PakistanWebFoundationActivity } from ProcessRecord{3379562d0 23905:com.mynayatel/u0a206} (pid=23905, uid=10206) not exported from uid 10690
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3114)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3257)
       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:1948)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:214)
       at android.app.ActivityThread.main(ActivityThread.java:7050)
       at java.lang.reflect.Method.invoke(Method.java)
       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.SecurityException: Permission Denial: starting Intent { act=android.intent.action.VIEW dat=https://nayatv.nayatel.com/... flg=0x10000000 cmp=team.opay.pay.pakistan/.module.web.PakistanWebFoundationActivity } from ProcessRecord{3379562d0 23905:com.mynayatel/u0a206} (pid=23905, uid=10206) not exported from uid 10690
       at android.os.Parcel.createException(Parcel.java:1966)
       at android.os.Parcel.readException(Parcel.java:1934)
       at android.os.Parcel.readException(Parcel.java:1884)
       at android.app.IActivityManager$Stub$Proxy.startActivity(IActivityManager.java:3619)
       at android.app.Instrumentation.execStartActivity(Instrumentation.java:1669)
       at android.app.Activity.startActivityForResult(Activity.java:4689)
       at android.app.Activity.startActivityForResult(Activity.java:4647)
       at android.app.Activity.startActivity(Activity.java:5008)
       at android.app.Activity.startActivity(Activity.java:4976)
       at com.onesignal.OneSignal.openDestinationActivity(OneSignal.java:2455)
       at com.onesignal.OneSignal.handleNotificationOpen(OneSignal.java:2435)
       at com.onesignal.NotificationOpenedProcessor.processIntent(NotificationOpenedProcessor.java:116)
       at com.onesignal.NotificationOpenedProcessor.processFromContext(NotificationOpenedProcessor.java:64)
       at com.onesignal.NotificationOpenedReceiverBase.onCreate(NotificationOpenedReceiverBase.kt:36)
       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:3094)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3257)
       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:1948)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:214)
       at android.app.ActivityThread.main(ActivityThread.java:7050)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)

Caused by android.os.RemoteException: Remote stack trace:
    at com.android.server.am.ActivityStackSupervisor.checkStartAnyActivityPermission(ActivityStackSupervisor.java:2144)
    at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:908)
    at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:671)
    at com.android.server.am.ActivityStarter.startActivityMayWait(ActivityStarter.java:1548)
    at com.android.server.am.ActivityStarter.execute(ActivityStarter.java:612)

Code of Conduct

jennantilla commented 1 month ago

HI @laraibsaghir0 thanks for reaching out! From the stack trace it looks like this might be from trying to open a specific activity in your app from a notification. Are you using deep linking in your notifications?

Also, we have an updated major release out which includes many improvements and enhancements. I'd highly suggest upgrading the SDK and letting us know if you are still facing any issues.

Full details on migrating here.

Thanks!