realm-java: UnsatisfiedLinkError ,when i execute “Realm.getDefaultInstance()”

crash log:

java.lang.UnsatisfiedLinkError: No implementation found for long io.realm.internal.w.a(java.lang.String, byte[]) (tried Java_io_realm_internal_w_a and Java_io_realm_internal_w_a__Ljava_lang_String_2_3B) at io.realm.internal.w.a(Native Method) at io.realm.internal.w.<init>(SharedGroup.java:63) at io.realm.internal.z.<init>(SharedGroupManager.java:49) at io.realm.d.<init>(BaseRealm.java:79) at io.realm.n.<init>(Realm.java:138) at io.realm.n.b(Realm.java:248) at io.realm.n.a(Realm.java:228) at io.realm.t.a(RealmCache.java:126) at io.realm.n.v(Realm.java:174) at com.ccclubs.dk.ui.cab.SelectAddressActivity.init(SelectAddressActivity.java:105) at com.ccclubs.common.base.BaseActivity.onCreate(BaseActivity.java:100) at android.app.Activity.performCreate(Activity.java:6071) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2561) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2677) at android.app.ActivityThread.access$800(ActivityThread.java:178) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1539) at android.os.Handler.dispatchMessage(Handler.java:111) at android.os.Looper.loop(Looper.java:194) at android.app.ActivityThread.main(ActivityThread.java:5773) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1005) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:800)


in my Application

    RealmConfiguration config = DatabaseHelper.getConfig(this);
    Realm.setDefaultConfiguration(config);

  public static RealmConfiguration getConfig(Context mContext) {
    RealmConfiguration config = new RealmConfiguration.Builder(mContext).name(dbName)
        .schemaVersion(dbVersion)
        .deleteRealmIfMigrationNeeded()
        .build();
    return config;
  }

the crash line:
// line 105
realm = Realm.getDefaultInstance();

Realm version(s): 1.0.0

Android Studio version: 2.1.1

Which Android version and device: 5.1 (API 22)

have any suggestion ?

tips: i have two versions in gradle,they have two different applicationId,when debug,it run as well,but after signed , crashed.

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Comments: 15 (9 by maintainers)

Most upvoted comments

With these names

at io.realm.internal.w.a(Native Method)
at io.realm.internal.w.(SharedGroup.java:63)
at io.realm.internal.z.(SharedGroupManager.java:49)

I’d think the issue is that Proguard ate your stuff. Maybe the Gradle-plugin’s proguard config broke?

#realm
-keepnames public class * extends io.realm.RealmObject
-keep @io.realm.annotations.RealmModule class *
-keep class io.realm.** { *; }
-dontwarn javax.**
-dontwarn io.realm.**

#realm 0.84.1+
-keep class io.realm.annotations.RealmModule
-keep @io.realm.annotations.RealmModule class *
-keep class io.realm.internal.Keep
-keep @io.realm.internal.Keep class *
-dontwarn javax.**
-dontwarn io.realm.**

#realm 0.89.0+
-keep class io.realm.RealmCollection
-keep class io.realm.OrderedRealmCollection

I’ve been using this Proguard config and it seems to be working