2015-03-06 1 views
1

Я слышал о RealmDb, которая является удобной базой данных, которая может заменить sqlite на платформе Android.realmDb ошибка инициализации

им пытаются получить его работу на моей галактики s2 андроида версии 2.3

я использую Realm версии 0.79.1

однако я получаю следующий массаж:

03-06 12:26:24.820: E/AndroidRuntime(17507): FATAL EXCEPTION: main 
03-06 12:26:24.820: E/AndroidRuntime(17507): java.lang.ExceptionInInitializerError 
03-06 12:26:24.820: E/AndroidRuntime(17507): at io.realm.Realm.<init>(Realm.java:199) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at io.realm.Realm.createAndValidate(Realm.java:516) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at io.realm.Realm.create(Realm.java:480) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at io.realm.Realm.getInstance(Realm.java:397) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at io.realm.Realm.getInstance(Realm.java:359) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at io.realm.Realm.getInstance(Realm.java:340) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at com.project.peoples.PersonListActivity.addTestPersons(PersonListActivity.java:134) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at com.project.peoples.PersonListActivity.onCreate(PersonListActivity.java:34) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at android.os.Handler.dispatchMessage(Handler.java:99) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at android.os.Looper.loop(Looper.java:123) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at android.app.ActivityThread.main(ActivityThread.java:3691) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at java.lang.reflect.Method.invokeNative(Native Method) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at java.lang.reflect.Method.invoke(Method.java:507) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at dalvik.system.NativeStart.main(Native Method) 
03-06 12:26:24.820: E/AndroidRuntime(17507): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load tightdb-jni: findLibrary returned null 
03-06 12:26:24.820: E/AndroidRuntime(17507): at java.lang.Runtime.loadLibrary(Runtime.java:429) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at java.lang.System.loadLibrary(System.java:554) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at io.realm.internal.TightDB.loadLibrary(TightDB.java:144) 
03-06 12:26:24.820: E/AndroidRuntime(17507): at io.realm.internal.SharedGroup.<clinit>(SharedGroup.java:34) 
03-06 12:26:24.820: E/AndroidRuntime(17507): ... 21 more 

причиной является следующая строка:

Realm realmDb=Realm.getInstance(this); 

Кто-нибудь знает причину и как с Olve его (я нашел на следующие, но в штрафной вполне понять, если он не имеет ничего общего со мной, как я не использую Gson на всех https://github.com/realm/realm-java/issues/620)

обновление: У меня есть собственные библиотеки в директории LIBS

enter image description here

обновление я cahnged расположение родных .so файлов каталогов быть direcetlly в директории LIBS, что я думаю, решается проблема, но ранее представил следующий код ошибки:

03-06 14:18:18.520: E/AndroidRuntime(20552): FATAL EXCEPTION: main 
03-06 14:18:18.520: E/AndroidRuntime(20552): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.project.mishnayot/com.project.peoples.PersonListActivity}: io.realm.exceptions.RealmException: Could not find the initTable method in the generated io.realm.PersonRealmProxy class: Annotation processor may not have been executed. 
03-06 14:18:18.520: E/AndroidRuntime(20552): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at android.os.Handler.dispatchMessage(Handler.java:99) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at android.os.Looper.loop(Looper.java:123) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at android.app.ActivityThread.main(ActivityThread.java:3691) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at java.lang.reflect.Method.invokeNative(Native Method) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at java.lang.reflect.Method.invoke(Method.java:507) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at dalvik.system.NativeStart.main(Native Method) 
03-06 14:18:18.520: E/AndroidRuntime(20552): Caused by: io.realm.exceptions.RealmException: Could not find the initTable method in the generated io.realm.PersonRealmProxy class: Annotation processor may not have been executed. 
03-06 14:18:18.520: E/AndroidRuntime(20552): at io.realm.Realm.initializeRealm(Realm.java:591) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at io.realm.Realm.createAndValidate(Realm.java:523) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at io.realm.Realm.create(Realm.java:480) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at io.realm.Realm.getInstance(Realm.java:397) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at io.realm.Realm.getInstance(Realm.java:359) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at io.realm.Realm.getInstance(Realm.java:340) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at com.project.peoples.PersonListActivity.addTestPersons(PersonListActivity.java:134) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at com.project.peoples.PersonListActivity.onCreate(PersonListActivity.java:34) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
03-06 14:18:18.520: E/AndroidRuntime(20552): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 

ответ

0

По какой-то причине царство не может найти родные библиотеки. Вы используете Android Studio или Eclipse. Если вы используете Eclipse, обратите внимание, что требуется дополнительная настройка, как описано здесь: http://realm.io/docs/java/0.79.0/#getting-started

+0

Я понял, что, но я следил за всеми этапами, и библиотека находится внутри библиотек (обновленный вопрос с изображением) –

+0

кажется родным libs должен находиться непосредственно в каталоге libs, а не в libs/lib, так или иначе, после того, как я столкнулся с другим массажем ошибок - обновил вопрос –

+0

Похоже, вы столкнулись с этой ошибкой: https://github.com/realm/realm -java/issues/870, мы работаем над исправлением. –