ondato / ondato-sdk-react-native

MIT License
2 stars 3 forks source link

Crash on Android #4

Open andrewgrinko opened 2 months ago

andrewgrinko commented 2 months ago

App crashes after calling ondatoSdkRef.current.open().

Device: Samsung S23, Android 14 Environment: react-native 0.73.4, minSdkVersion 23, kotlinVersion 1.8.10, ondato-sdk-react-native 2.5.2

onStateUpdate logs:

LOG  {
  "status": "Dormant"
}
LOG  {
  "status": "Ready",
  "message": "OndatoSdk was initialized with the provided configuration and will start shortly"
}

Crash logs:

2024-03-20 11:20:45.576   646-646   AndroidRuntime          ua.novapay.novapaymobile             E  FATAL EXCEPTION: main
Process: ua.novapay.novapaymobile, PID: 646
java.lang.NoSuchMethodError: No static method binds(Lkotlin/Pair;[Lkotlin/reflect/KClass;)Lkotlin/Pair; in class Lorg/koin/dsl/DefinitionBindingKt; or its super classes (declaration of 'org.koin.dsl.DefinitionBindingKt' appears in /data/app/~~86V-U_7oNoOBRbSVaF3FQA==/ua.novapay.novapaymobile-o1bVVQPQsmcyWIpO07w8Hw==/base.apk!classes6.dex)
    at org.koin.android.ext.koin.KoinExtKt$androidContext$1.invoke(KoinExt.kt:60)
    at org.koin.android.ext.koin.KoinExtKt$androidContext$1.invoke(KoinExt.kt:59)
    at org.koin.dsl.ModuleDSLKt.module(ModuleDSL.kt:44)
    at org.koin.dsl.ModuleDSLKt.module$default(ModuleDSL.kt:42)
    at org.koin.android.ext.koin.KoinExtKt.androidContext(KoinExt.kt:59)
    at u.b.invoke(SourceFile:32)
    at u.c.startKoin(SourceFile:7)
    at com.ondato.sdk.Ondato.startIdentification(SourceFile:6)
    at com.ondatosdkreactnative.OSRNFragment.onViewCreated(OSRNFragment.kt:76)
    at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:3128)
    at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:552)
    at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
    at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1899)
    at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1817)
    at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1760)
    at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:547)
    at android.os.Handler.handleCallback(Handler.java:958)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loopOnce(Looper.java:230)
    at android.os.Looper.loop(Looper.java:319)
    at android.app.ActivityThread.main(ActivityThread.java:8893)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

I'm seeing Koin referenced in the log stack trace. Here's an issue I've found in their repo that might be related to this problem.

https://github.com/InsertKoinIO/koin/issues/1493

edgaras-simanavicius commented 3 weeks ago

@andrewgrinko Can you test on 2.5.3? It does not reproduce for us, but we did some changes.

TomasPIzi1 commented 6 days ago

I reproduce exactly same issue on 2.5.3. Using Android Emulator Pixel 8 API 34.

Env: buildToolsVersion = "33.0.0" minSdkVersion = 21 compileSdkVersion = 34 targetSdkVersion = 34 RN = 0.74.1

Console output: { "status": "Ready", "message": "OndatoSdk was initialized with the provided configuration and will start shortly" } ERROR Your app just crashed. See the error below. java.lang.NoSuchMethodError: No static method binds(Lkotlin/Pair;[Lkotlin/reflect/KClass;)Lkotlin/Pair; in class Lorg/koin/dsl/DefinitionBindingKt; or its super classes (declaration of 'org.koin.dsl.DefinitionBindingKt' appears in /data/app/~~7EyUV9tSR50Q3z7heLi2Tg==/com.-RX1Kxc5mfNlXzE6fJ7DO-w==/base.apk!classes7.dex) org.koin.android.ext.koin.KoinExtKt$androidContext$1.invoke(KoinExt.kt:60) org.koin.android.ext.koin.KoinExtKt$androidContext$1.invoke(KoinExt.kt:59) org.koin.dsl.ModuleDSLKt.module(ModuleDSL.kt:44) org.koin.dsl.ModuleDSLKt.module$default(ModuleDSL.kt:42) org.koin.android.ext.koin.KoinExtKt.androidContext(KoinExt.kt:59) s.b$a.a(Unknown Source:7) s.b$a.invoke(Unknown Source:2) s.b.startKoin(Unknown Source:17) s.b.a(Unknown Source:28) com.ondato.sdk.Ondato.startIdentification(Unknown Source:18) com.ondatosdkreactnative.OSRNFragment.onViewCreated(OSRNFragment.kt:76) androidx.fragment.app.Fragment.performViewCreated(Fragment.java:3019) androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:551) androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261) androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1840) androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1758) androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1701) androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:488) android.os.Handler.handleCallback(Handler.java:958) android.os.Handler.dispatchMessage(Handler.java:99) android.os.Looper.loopOnce(Looper.java:205) android.os.Looper.loop(Looper.java:294) android.app.ActivityThread.main(ActivityThread.java:8177) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)

Svaike commented 5 days ago

This likely was resolved with the native SDK v2.5.4 release.

You can wait for React native SDK v2.5.4 release or can try update android part manually in your project

TomasPIzi1 commented 4 days ago

Thanks, that sounds great! Any estimate for React Native v2.5.4 time of arrival?

edgaras-simanavicius commented 4 days ago

It should be up today.

TomasPIzi1 commented 2 days ago

Any update on v2.5.4 ETA?