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
605 stars 368 forks source link

[Bug]: Crash during OneSignal SDK initialization using reflection #2204

Closed markobenke1 closed 2 days ago

markobenke1 commented 6 days ago

What happened?

The app crashes during OneSignal SDK initialization. The issue occurs at a line involving reflection (ServiceRegistrationReflection.resolve). The crash happens sporadically, making it difficult to pinpoint the exact cause with only the provided stack trace.

Steps to reproduce?

The issue occurs randomly, so there are no specific steps to consistently reproduce it. It seems to be related to the SDK initialization and service registration via reflection.

What did you expect to happen?

I expected the SDK to initialize correctly without crashing, even when reflection is used for service registration.

OneSignal Android SDK version

Release 5.1.12

Android version

13, 12, 11

Specific Android models

* Oppo A54
* Oppo A16
* Oppo F11
* Technicolor TV
* Samsung Galaxy A51
* Samsung Galaxy A10
* Samsung Galaxy Note10 Lite
* AMD Stoney Ridge Chromebook
* Mediatek MTK8173 Chromebook
* Intel Gemini Lake Chromebook

Relevant log output

java.lang.reflect.Constructor.newInstance (Constructor.java:343)
com.onesignal.common.services.ServiceRegistrationReflection.resolve (ServiceRegistration.kt:89)
com.onesignal.common.services.ServiceProvider.getServiceOrNull (ServiceProvider.kt:79)
com.onesignal.common.services.ServiceProvider.getService (ServiceProvider.kt:67)
com.onesignal.common.services.ServiceRegistrationReflection.resolve (ServiceRegistration.kt:82)
com.onesignal.common.services.ServiceProvider.getServiceOrNull (ServiceProvider.kt:79)
com.onesignal.common.services.ServiceProvider.getService (ServiceProvider.kt:67)
com.onesignal.common.services.ServiceProvider.getService$com_onesignal_core (ServiceProvider.kt:35)
com.onesignal.internal.OneSignalImp.initWithContext (OneSignalImp.kt:237)
com.onesignal.OneSignal.initWithContext (OneSignal.kt:135)
com.ss.onesignal.OneSignalInitializer.initOneSignal (OneSignalInitializer.kt:38)
com.ss.onesignal.OneSignalInitializer.access$initOneSignal (OneSignalInitializer.kt:16)
com.ss.onesignal.OneSignalInitializer$initialize$1.invoke (OneSignalInitializer.kt:33)
com.ss.OneSignalInitializer$initialize$1.invoke (OneSignalInitializer.java:33)
com.ss.architecture.ProcessInfo$DefaultImpls.runForMainProcess (ProcessInfo.kt:10)
com.ss.SdkProcessInfo.runForMainProcess (SdkProcessInfo.kt)
com.ss.onesignal.OneSignalInitializer.initialize (OneSignalInitializer.kt:33)
com.example.aa.MyApp.initialize (MyApp.kt:60)
com.example.aa.MyApp.onCreate (MyApp.kt:40)
android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1270)

Code of Conduct

jinliu9508 commented 2 days ago

@markobenke1 This is a known issue and has been fixed. Please upgrade to our latest version, or at least to version 5.1.21, to eliminate the crash. Please let us know if you encounter any issues during the upgrade.