BabylonReactNative icon indicating copy to clipboard operation
BabylonReactNative copied to clipboard

React Native 0.65 crashes on Android emulators at API 30

Open syntheticmagus opened this issue 3 years ago • 6 comments

Describe the bug Babylon React Native targeting v. 0.65 crashes immediately as soon as it tries to run on an Android emulators at API 30. From our investigation so far, this appears to be specific to that specific combination of versions; the crash does not repro on 0.64 nor with APIs other than 30.

To Reproduce Steps to reproduce the behavior:

  1. Create an emulator running Android API 30 and leave it running to force React Native to deploy to that device
  2. Clone and attempt to run this repo using the instructions there

Expected behavior The app should display the animated nested cube model from the glTF samples.

Screenshots If you tail logcat during the crash, you see this error: image

Other

  • Platform: Win32 deploying 0.65 to an Android emulator at API 30.

syntheticmagus avatar Mar 29 '22 18:03 syntheticmagus

May pertain to the following NDK bug: https://github.com/android/ndk/issues/1639

syntheticmagus avatar Mar 29 '22 18:03 syntheticmagus

Hello everyone, we are having a similar problem in some devices: (the following is from an emulator but the error message is the same)

Process: com.mrtgamification, PID: 6601
    java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_Unwind_Resume" referenced by "/data/app/com.mrtgamification--j3ImMNEi28R2tUXxbwVOQ==/base.apk!/lib/x86/libBabylonNative.so"...
        at java.lang.Runtime.loadLibrary0(Runtime.java:1071)
        at java.lang.Runtime.loadLibrary0(Runtime.java:1007)
        at java.lang.System.loadLibrary(System.java:1667)
        at com.babylonreactnative.BabylonNativeInterop$BabylonNative.<clinit>(BabylonNativeInterop.java:18)
        at com.babylonreactnative.BabylonNativeInterop$BabylonNative.initialize(Native Method)
        at com.babylonreactnative.BabylonNativeInterop.initialize(BabylonNativeInterop.java:40)
        at com.babylonreactnative.BabylonModule.lambda$initialize$0$com-babylonreactnative-BabylonModule(BabylonModule.java:25)
        at com.babylonreactnative.BabylonModule$$ExternalSyntheticLambda0.run(Unknown Source:4)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27)
        at android.os.Looper.loop(Looper.java:214)
        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:228)
        at java.lang.Thread.run(Thread.java:919)

Some of the devices on which we are having the problem are:

  • Huawei 8X
  • Redmi Note 9 Pro
  • Samsung Galaxy A50
  • Acer Liquid S1
  • Huawei P30
  • Huawei P20
  • Motorola moto g7

It is not clear why it happens on these devices while on others everything runs fine. We tried a lot of solutions without success. We had this problem on RN 0.65, 0.66 and now 0.68. I can confirm that it's happening on SDK 29 and 30.

pingumen96 avatar Jun 10 '22 13:06 pingumen96

I'm getting the same error UnsatisfiedLinkError... __emutls_get_address @syntheticmagus or @pingumen96 were you able to fix it?

LautaroNavarro avatar Jun 30 '22 15:06 LautaroNavarro

Facing the same issue as @pingumen96, was anyone able to find a workaround?

dmegue avatar Aug 21 '22 13:08 dmegue

Emulators (mainly on Windows) have a common problem with crash (when using OpenGL ES context). I always had to use a real device instead of emulating Android. In Mac environment (M1) I don't have this problem, emulating both IOS and Android seems stable.

Emulators are never 100% and emulating Open GL ES calls can be even more problematic.

Have you tried on a "more game-ready/3D rendering" emulator like BlueStacks/Nox Player? (Via Android Debug Bridge)

gomes042 avatar Aug 21 '22 18:08 gomes042

Hello everyone, we are having a similar problem in some devices: (the following is from an emulator but the error message is the same)

Process: com.mrtgamification, PID: 6601
    java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_Unwind_Resume" referenced by "/data/app/com.mrtgamification--j3ImMNEi28R2tUXxbwVOQ==/base.apk!/lib/x86/libBabylonNative.so"...
        at java.lang.Runtime.loadLibrary0(Runtime.java:1071)
        at java.lang.Runtime.loadLibrary0(Runtime.java:1007)
        at java.lang.System.loadLibrary(System.java:1667)
        at com.babylonreactnative.BabylonNativeInterop$BabylonNative.<clinit>(BabylonNativeInterop.java:18)
        at com.babylonreactnative.BabylonNativeInterop$BabylonNative.initialize(Native Method)
        at com.babylonreactnative.BabylonNativeInterop.initialize(BabylonNativeInterop.java:40)
        at com.babylonreactnative.BabylonModule.lambda$initialize$0$com-babylonreactnative-BabylonModule(BabylonModule.java:25)
        at com.babylonreactnative.BabylonModule$$ExternalSyntheticLambda0.run(Unknown Source:4)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27)
        at android.os.Looper.loop(Looper.java:214)
        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:228)
        at java.lang.Thread.run(Thread.java:919)

Some of the devices on which we are having the problem are:

  • Huawei 8X
  • Redmi Note 9 Pro
  • Samsung Galaxy A50
  • Acer Liquid S1
  • Huawei P30
  • Huawei P20
  • Motorola moto g7

It is not clear why it happens on these devices while on others everything runs fine. We tried a lot of solutions without success. We had this problem on RN 0.65, 0.66 and now 0.68. I can confirm that it's happening on SDK 29 and 30.

This specific issue has been addressed in #458.

bghgary avatar Sep 22 '22 19:09 bghgary

Any update on this issue @bghgary ?

CedricGuillemet avatar Nov 18 '22 10:11 CedricGuillemet

No, I suspect changing the API level settings in gradle will help, but I haven't tried yet.

bghgary avatar Nov 18 '22 16:11 bghgary

Closing this since 0.65 is quite old. If this continues to be an issue for newer RN, let's reopen.

bghgary avatar Oct 12 '23 18:10 bghgary