Skip to content

[Bug]: Initializing SDK on main thread #2372

@abdulraqeeb33

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

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions