Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
64bits libOni.so reports UnsatisfiedLinkError exception
#1
Sorry i opened a new post, the similar problem here: http://obi.virtualmethodstudio.com/forum...-2187.html

We have the problem that the 64bits libOni.so was loaded failed because UnsatisfiedLinkError, the error print as below:



Code:
Unable to load library '/data/user/0/com.ss.android.ugc.aweme/files/_ucfiles/_uclib/local/tt9a4aecf7057074ae/libOni.so', native render plugin support disabled: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_Unwind_Resume" referenced by "/data/data/com.ss.android.ugc.aweme/files/_ucfiles/_uclib/local/tt9a4aecf7057074ae/libOni.so"...



I have searched a lot and seems lot of talks about ndk mismatches, so i looked into the libOni.so as the Post(https://github.com/google/oboe/issues/966) indicates, the _Unwind_Resume was not found just as I assumed. I tested with Unity2019.4.8f1, and it works on most 'runtime' and only fails for few(32bits can be loaded while 64bits can't).

As far as I know, the Unity 2019 has upgrade its ndk to r19(https://docs.unity3d.com/Manual/android-sdksetup.html), so can you please compile the .so with r19 and send me a test libOni.so to see if we can fix this issue, it will helps a lot, thank you!

Reply
#2
(01-12-2020, 10:15 AM)kingshijie Wrote: Sorry i opened a new post, the similar problem here: http://obi.virtualmethodstudio.com/forum...-2187.html

We have the problem that the 64bits libOni.so was loaded failed because UnsatisfiedLinkError, the error print as below:



Code:
Unable to load library '/data/user/0/com.ss.android.ugc.aweme/files/_ucfiles/_uclib/local/tt9a4aecf7057074ae/libOni.so', native render plugin support disabled: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_Unwind_Resume" referenced by "/data/data/com.ss.android.ugc.aweme/files/_ucfiles/_uclib/local/tt9a4aecf7057074ae/libOni.so"...



I have searched a lot and seems lot of talks about ndk mismatches, so i looked into the libOni.so as the Post(https://github.com/google/oboe/issues/966) indicates, the _Unwind_Resume was not found just as I assumed. I tested with Unity2019.4.8f1, and it works on most 'runtime' and only fails for few(32bits can be loaded while 64bits can't).

As far as I know, the Unity 2019 has upgrade its ndk to r19(https://docs.unity3d.com/Manual/android-sdksetup.html), so can you please compile the .so with r19 and send me a test libOni.so to see if we can fix this issue, it will helps a lot, thank you!


Hi there,

Will investigate this and report back asap. In the meantime, using the Burst backend will circumvent any issues you may have with the native library (as libOni.so is no longer needed), and will likely result in slightly better performance on mobile platforms.

I've been so far unable to reproduce this issue in any Unity version (2018.X, 2019.X and 2020.X) so it's quite unlikely for the NDK version to be the culprit, though.
Reply
#3
(01-12-2020, 10:59 AM)josemendez Wrote: Hi there,

Will investigate this and report back asap. In the meantime, using the Burst backend will circumvent any issues you may have with the native library (as libOni.so is no longer needed), and will likely result in slightly better performance on mobile platforms.

I've been so far unable to reproduce this issue in any Unity version (2018.X, 2019.X and 2020.X) so it's quite unlikely for the NDK version to be the culprit, though.
thanks for the reply, I finally found out the cause, there's another libc++_shared.so under the library loading path which will be loaded before the one we have in the Obi plugin, however, the loaded libc++_shared.so doesn't contain the symbol "_Unwind_Resume", which cause the libOni.so complaining the absence of the symbol
Reply