Skip to content

[Bug]: Initializing SDK on main thread #2372

Description

@abdulraqeeb33

What happened?

Version 5.1.28+ has several ANR's mostly related to initialization of the SDK happening on the main thread.

Steps to reproduce?

1. Typical usage of the SDK

What did you expect to happen?

The app should not run in to ANR.

OneSignal Android SDK version

Release 5.1.28

Android version

5.1

Specific Android models

* Android Studio - Emulator

Relevant log output

`"main" tid=1 Blocked
  at com.onesignal.common.services.ServiceProvider.getServiceOrNull (ServiceProvider.kt:77)
  at com.onesignal.common.services.ServiceProvider.getService (ServiceProvider.kt:67)
  at com.onesignal.common.services.ServiceProvider.getService$com_onesignal_core (ServiceProvider.kt:35)
  at com.onesignal.internal.OneSignalImp.getInAppMessages (OneSignalImp.kt:113)
  at com.onesignal.OneSignal.getInAppMessages (OneSignal.kt:78)
  at <private>
  at android.os.Handler.handleCallback (Handler.java:942)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:223)
  at android.os.Looper.loop (Looper.java:324)
  at android.app.ActivityThread.main (ActivityThread.java:8675)
  at java.lang.reflect.Method.invoke (Native method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:582)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1061)
`

`"main" tid=1 Runnable
  #00  pc 0x00000000004ca2ec  /apex/com.android.art/lib64/libart.so (art::DumpNativeStack+108)
  #01  pc 0x00000000004342b4  /apex/com.android.art/lib64/libart.so (art::Thread::DumpStack const+436)
  #02  pc 0x0000000000433fd0  /apex/com.android.art/lib64/libart.so (art::DumpCheckpoint::Run+120)
  #03  pc 0x000000000028e190  /apex/com.android.art/lib64/libart.so (art::Thread::RunCheckpointFunction+144)
  #04  pc 0x000000000042bdac  /apex/com.android.art/lib64/libart.so (artTestSuspendFromCode+256)
  #05  pc 0x0000000000343eec  /apex/com.android.art/lib64/libart.so (art_quick_test_suspend+156)
  at java.lang.reflect.Executable.getParameterTypesInternal (Native method)
  at java.lang.reflect.Constructor.getParameterTypes (Constructor.java:138)
  at libcore.reflect.GenericSignatureParser.parseForConstructor (GenericSignatureParser.java:192)
  at java.lang.reflect.Executable.getMethodOrConstructorGenericInfoInternal (Executable.java:706)
  at java.lang.reflect.Executable.getGenericParameterTypes (Executable.java:270)
  at java.lang.reflect.Constructor.getGenericParameterTypes (Constructor.java:164)
  at com.onesignal.common.services.ServiceRegistrationReflection.doesHaveAllParameters (ServiceRegistration.kt:101)
  at com.onesignal.common.services.ServiceRegistrationReflection.resolve (ServiceRegistration.kt:62)
  at com.onesignal.common.services.ServiceProvider.getServiceOrNull (ServiceProvider.kt:79)
  at com.onesignal.common.services.ServiceProvider.getService (ServiceProvider.kt:67)
  at com.onesignal.common.services.ServiceProvider.getService$com_onesignal_core (ServiceProvider.kt:35)
  at com.onesignal.internal.OneSignalImp.initWithContext (OneSignalImp.kt:210)
  at com.onesignal.OneSignal.initWithContext (OneSignal.java:135)
  at <private>
  at android.os.Handler.handleCallback (Handler.java:958)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:205)
  at android.os.Looper.loop (Looper.java:294)
  at android.app.ActivityThread.main (ActivityThread.java:8492)
  at java.lang.reflect.Method.invoke (Native method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:640)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1026)`

`"main" tid=1 Runnable
  #00  pc 0x00000000004ca2ec  /apex/com.android.art/lib64/libart.so (art::DumpNativeStack+108)
  #01  pc 0x00000000004342b4  /apex/com.android.art/lib64/libart.so (art::Thread::DumpStack const+436)
  #02  pc 0x0000000000433fd0  /apex/com.android.art/lib64/libart.so (art::DumpCheckpoint::Run+120)
  #03  pc 0x000000000028e190  /apex/com.android.art/lib64/libart.so (art::Thread::RunCheckpointFunction+144)
  #04  pc 0x000000000022f2ec  /apex/com.android.art/lib64/libart.so (art::ClassLinker::LoadClass+2100)
  #05  pc 0x0000000000226488  /apex/com.android.art/lib64/libart.so (art::ClassLinker::DefineClass+1620)
  #06  pc 0x00000000002396ac  /apex/com.android.art/lib64/libart.so (art::ClassLinker::FindClassInBaseDexClassLoader+1196)
  #07  pc 0x00000000002055e4  /apex/com.android.art/lib64/libart.so (art::ClassLinker::FindClass+1004)
  #08  pc 0x00000000002f0e14  /apex/com.android.art/lib64/libart.so (art::ClassLinker::DoResolveType+116)
  #09  pc 0x00000000002f0928  /apex/com.android.art/lib64/libart.so (art::ObjPtr<art::mirror::Class> art::ClassLinker::DoResolveType<art::ObjPtr<art::mirror::Class>>+140)
  #10  pc 0x0000000000226b48  /apex/com.android.art/lib64/libart.so (art::ClassLinker::DefineClass+3348)
  #11  pc 0x00000000002396ac  /apex/com.android.art/lib64/libart.so (art::ClassLinker::FindClassInBaseDexClassLoader+1196)
  #12  pc 0x00000000002055e4  /apex/com.android.art/lib64/libart.so (art::ClassLinker::FindClass+1004)
  #13  pc 0x00000000002f0e14  /apex/com.android.art/lib64/libart.so (art::ClassLinker::DoResolveType+116)
  #14  pc 0x00000000002ee6f0  /apex/com.android.art/lib64/libart.so (art::verifier::RegType const& art::verifier::impl::::MethodVerifierImpl::ResolveClass<2>+408)
  #15  pc 0x00000000002e9f68  /apex/com.android.art/lib64/libart.so (art::verifier::impl::::MethodVerifier<false>::CodeFlowVerifyInstruction+5852)
  #16  pc 0x00000000002e79e4  /apex/com.android.art/lib64/libart.so (art::verifier::impl::::MethodVerifier<false>::Verify+608)
  #17  pc 0x00000000002aeab0  /apex/com.android.art/lib64/libart.so (art::verifier::MethodVerifier::FailureData art::verifier::MethodVerifier::VerifyMethod<false>+256)
  #18  pc 0x00000000005d9c3c  /apex/com.android.art/lib64/libart.so (art::verifier::ClassVerifier::VerifyClass+1176)
  #19  pc 0x00000000005d972c  /apex/com.android.art/lib64/libart.so (art::ClassLinker::PerformClassVerification+264)
  #20  pc 0x00000000004b1188  /apex/com.android.art/lib64/libart.so (art::ClassLinker::VerifyClass+3560)
  #21  pc 0x000000000055b9bc  /apex/com.android.art/lib64/libart.so (art::ClassLinker::InitializeClass+1172)
  #22  pc 0x00000000002d37b8  /apex/com.android.art/lib64/libart.so (art::ClassLinker::EnsureInitialized+156)
  #23  pc 0x000000000060c6bc  /apex/com.android.art/lib64/libart.so (art::Class_classForName+372)
  at java.lang.Class.classForName (Native method)
  at java.lang.Class.forName (Class.java:597)
  at java.lang.Class.forName (Class.java:502)
  at com.onesignal.internal.OneSignalImp.<init> (OneSignalImp.kt:168)
  at com.onesignal.OneSignal$oneSignal$2.invoke (OneSignal.kt:196)
  at com.onesignal.OneSignal$oneSignal$2.invoke (OneSignal.kt:195)
  at kotlin.SynchronizedLazyImpl.getValue (LazyJVM.kt:83)
  at com.onesignal.OneSignal.getOneSignal (OneSignal.kt:195)
  at com.onesignal.OneSignal.getDebug (OneSignal.kt:88)
  at <private>
  at android.os.Handler.handleCallback (Handler.java:942)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:226)
  at android.os.Looper.loop (Looper.java:313)
  at android.app.ActivityThread.main (ActivityThread.java:8762)
  at java.lang.reflect.Method.invoke (Native method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:604)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1067)`

`"main" tid=1 Blocked
  at com.onesignal.common.services.ServiceProvider.getServiceOrNull (ServiceProvider.kt:77)
  at com.onesignal.common.services.ServiceProvider.getService (ServiceProvider.kt:67)
  at com.onesignal.internal.OneSignalImp.getInAppMessages (OneSignalImp.kt:496)
  at com.onesignal.OneSignal.getInAppMessages (OneSignal.kt:78)
  at <private>
  at android.os.Handler.handleCallback (Handler.java:958)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:205)
  at android.os.Looper.loop (Looper.java:294)
  at android.app.ActivityThread.main (ActivityThread.java:8500)
  at java.lang.reflect.Method.invoke (Native method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:640)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1026)`

`"main" tid=1 Runnable
  at com.onesignal.OneSignal$oneSignal$2.invoke (OneSignal.kt)
  at com.onesignal.OneSignal$oneSignal$2.invoke (OneSignal.kt)
  at kotlin.SynchronizedLazyImpl.getValue (LazyJVM.kt:83)
  at com.onesignal.OneSignal.getOneSignal (OneSignal.kt:195)
  at com.onesignal.OneSignal.getDebug (OneSignal.kt:88)
  at <private>
  at android.os.Handler.handleCallback (Handler.java:942)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:223)
  at android.os.Looper.loop (Looper.java:324)
  at android.app.ActivityThread.main (ActivityThread.java:8611)
  at java.lang.reflect.Method.invoke (Native method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:582)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1061)`

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions