Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UnsatisfiedLinkError: dlopen failed: empty/missing DT_HASH/DT_GNU_HASH #7894

Open
victorjimbei opened this issue Jun 3, 2024 · 12 comments
Open

Comments

@victorjimbei
Copy link

victorjimbei commented Jun 3, 2024

How frequently does the bug occur?

Always

Description

Hello,
I was testing our appliaction with an Android emulator with Android 15 with support for 16KB page sizes, and it crashed with the below stacktrace when trying to init the Realm instance.

Stacktrace & log output

java.lang.UnsatisfiedLinkError: dlopen failed: empty/missing DT_HASH/DT_GNU_HASH in "/data/data/com.example.realmsampleapplication/app_lib/librealm-jni.so.10.18.0" (new hash type from the future?) at java.lang.Runtime.load0(Runtime.java:933) at java.lang.System.load(System.java:1729) at com.getkeepsafe.relinker.SystemLibraryLoader.loadPath(SystemLibraryLoader.java:29) at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:204) at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:136) at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:70) at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:57) at io.realm.internal.RealmCore.loadLibrary(RealmCore.java:60) at io.realm.Realm.initializeRealm(Realm.java:348) at io.realm.Realm.init(Realm.java:263) at com.example.realmsampleapplication.MainActivity.onCreate(MainActivity.kt:20)

Can you reproduce the bug?

Always

Reproduction Steps

I've created a sample app to reproduce this bug and pushed it on github.
Steps to reproduce:

  1. Clone the RealmSampleApplication project.
  2. Create an Android emulator following steps from this page: https://developer.android.com/guide/practices/page-sizes#16kb-emulator
  3. Build and run the app.
  4. It will crash as soon as the Realm.init(this) is called.

Version

Java SDK 10.18.0 or Kotlin SDK 1.16.0

What Atlas App Services are you using?

Local Database only

Are you using encryption?

No

Platform OS and version(s)

Android 15 Beta 2 (Android API VanillaIceCream (Google APIs Page Size 16KB))

Build environment

Android Studio version: Android Studio Koala | 2024.1.1 Beta 2
Android Build Tools version: 35-rc4
Gradle version: 8.4.1

Copy link

sync-by-unito bot commented Jun 3, 2024

➤ PM Bot commented:

Jira ticket: RJAVA-1264

@VicMikhailau
Copy link

The same issue.

@yd-threra-and
Copy link

We are also encountering this issue with the Realm SDK on Android 15 emulators with 16 KB page sizes.

We are in the middle of developing our next official release that will support Android 15, and this issue is critical for our progress. Could you please provide any updates on the status of this issue? Is there a planned fix for both the Java and Kotlin SDKs?

@victorjimbei
Copy link
Author

A similar issue for the kotlin version is in progress.

@Mihir3646
Copy link

Mihir3646 commented Jul 10, 2024

On Realm.init(this);
getting the same error in lib version 10.18.0

Fatal Exception: java.lang.UnsatisfiedLinkError
dlopen failed: cannot locate symbol "ExecuteProgram" referenced by "/data/data/com.my.app/app_lib/librealm-jni.so.10.18.0"...
java.lang.Runtime.load0 (Runtime.java:933)
java.lang.System.load (System.java:1729)
com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal (ReLinkerInstance.java:204)
com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary (ReLinkerInstance.java:134)
com.getkeepsafe.relinker.ReLinker.loadLibrary (ReLinker.java:70)
com.getkeepsafe.relinker.ReLinker.loadLibrary (ReLinker.java:57)
io.realm.internal.RealmCore.loadLibrary (RealmCore.java:60)
io.realm.Realm.isInstantApp (Realm.java:318)
io.realm.Realm.initializeRealm (Realm.java:344)
io.realm.Realm.init (Realm.java:47) 

@swankjesse
Copy link

I saw a similar crash with an unrelated cause. I was able to fix it in our NDK project by following the Android guide, Support 16 KB page sizes.

@ridcully99
Copy link

So, is this project now abandoned by MongoDB? This issue here will break all apps using Realm on Android devices with the new 16KB page size and they don't even care.

@Mihir3646
Copy link

So, is this project now abandoned by MongoDB? This issue here will break all apps using Realm on Android devices with the new 16KB page size and they don't even care.

Yes, it's almost 2 months, and still no update on this. Really !!!

@mannodermaus
Copy link
Contributor

I ended up compiling Realm myself with the 16 KB page size flags, and this caused our crash on launch to go away. While it's a pretty simple change, it needs some more thorough testing (esp. with the object server library, which we aren't using in our project). #7897

@asadwaheed1
Copy link

asadwaheed1 commented Aug 5, 2024

I am having the same problem on android emulator running android 15 with 16KB page size rom

@ABINAYASEL
Copy link

I am facing same issue, when will be the new version released with this fix?

@victorjimbei
Copy link
Author

Are there plans to release a new version with this fix in place?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants