realm / realm-java

Realm is a mobile database: a replacement for SQLite & ORMs
http://realm.io
Apache License 2.0
11.46k stars 1.75k forks source link

Couldn't load tightdb-jni #837

Closed sweggersen closed 9 years ago

sweggersen commented 9 years ago

I'm trying to support Android 3.2, on a Sony GS8 with Google TV, but Realm is making it crash. I get the following error:

Caused by: java.lang.UnsatisfiedLinkError: Couldn't load tightdb-jni: findLibrary returned null

jus by calling:

Realm.getInstance(mContext);

Is there a solution?

emanuelez commented 9 years ago

Hello,

can you please provide the whole stacktrace?

On Sat, Feb 7, 2015 at 11:31 PM, Sam Mathias Weggersen < notifications@github.com> wrote:

I'm trying to support Android 3.2, on a Sony GS8 with Google TV, but Realm is making it crash. I get the following error:

Caused by: java.lang.UnsatisfiedLinkError: Couldn't load tightdb-jni: findLibrary returned null

jus by calling:

Realm.getInstance(mContext);

Is there a solution?

— Reply to this email directly or view it on GitHub https://github.com/realm/realm-java/issues/837.

Emanuele Zattin (@emanuelez https://twitter.com/emanuelez) SW Engineer & CI Specialist

sweggersen commented 9 years ago

I get this if I run it on a Sony GS8 device:

 02-07 22:20:05.216    3216-3216/? E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.ExceptionInInitializerError
 at io.realm.Realm.<init>(Realm.java:159)
 at io.realm.Realm.createAndValidate(Realm.java:441)
 at io.realm.Realm.create(Realm.java:418)
 at io.realm.Realm.getInstance(Realm.java:336)
 at io.realm.Realm.getInstance(Realm.java:298)
 at io.realm.Realm.getInstance(Realm.java:279)
 Caused by: java.lang.UnsatisfiedLinkError: Couldn't load tightdb-jni: findLibrary returned null
 at java.lang.Runtime.loadLibrary(Runtime.java:425)
 at java.lang.System.loadLibrary(System.java:554)
 at io.realm.internal.TightDB.loadLibrary(TightDB.java:144)
 at io.realm.internal.SharedGroup.<clinit>(SharedGroup.java:31)
 at io.realm.Realm.<init>(Realm.java:159)
 at io.realm.Realm.createAndValidate(Realm.java:441)
 at io.realm.Realm.create(Realm.java:418)
 at io.realm.Realm.getInstance(Realm.java:336)
 at io.realm.Realm.getInstance(Realm.java:298)
 at io.realm.Realm.getInstance(Realm.java:279)
sweggersen commented 9 years ago

I get this if I run it on Android Emulator - Google TV:

Caused by: java.lang.UnsatisfiedLinkError: libm.so: cannot open shared object file: No such file or directory
at java.lang.Runtime.loadLibrary(Runtime.java:430)
at java.lang.System.loadLibrary(System.java:554)
at io.realm.internal.TightDB.loadLibrary(TightDB.java:144)
at io.realm.internal.SharedGroup.<clinit>(SharedGroup.java:31)
at io.realm.Realm.<init>(Realm.java:159)
at io.realm.Realm.createAndValidate(Realm.java:441)
at io.realm.Realm.create(Realm.java:418)
at io.realm.Realm.getInstance(Realm.java:336)
at io.realm.Realm.getInstance(Realm.java:298)
at io.realm.Realm.getInstance(Realm.java:279)
sweggersen commented 9 years ago

In addition, it does work on every other device and version of android that I've tried the application on.

cmelchior commented 9 years ago

When you say Google TV, I assume you mean the old one and not the new Android TV? This blog post here seems to indicate that it might not play as nice with native libs as we might wish: http://blog.xfce.org/2012/10/

Also this bug report seems to indicate that it is only possible on later versions of Android: https://code.google.com/p/googletv-issues/issues/detail?id=12

sweggersen commented 9 years ago

Yes, I mean the old Google TV. Well, I see there's not much for you too do. Thanks anyway.