【发布时间】:2015-03-26 17:47:24
【问题描述】:
我正在尝试将一个预加载的 Realm 数据库放入我的应用程序中。
我在做什么:
我创建了一个简单的应用程序,将数据从 JSON 加载到 Realm 数据库 (default1.realm)。
我有我的实际应用程序,我试图将加载程序创建的 default.realm 文件放在 res/raw 文件夹中,并使用迁移示例 copyBundledRealmFile() 函数将 default.realm 复制到 getFilesDir( )。
完成这一切之后,当我尝试执行 Realm.getInstance() 时,会返回一个空的 Realm。
我做错了什么?
String path3 = copyBundledRealmFile(this.getResources().openRawResource(R.raw.default1), "default.realm");
Realm r1 = Realm.getInstance(this);
r1 应该指向我复制的文件,对吧?
更新:我找到了无法访问数据库的原因:
03-27 10:27:50.965 17750-17750/? A/art﹕ art/runtime/check_jni.cc:65] JNI DETECTED ERROR IN APPLICATION:
input is not valid Modified UTF-8: illegal continuation byte 0x2e
03-27 10:27:50.965 17750-17750/? A/art﹕ art/runtime/check_jni.cc:65] string: 'Unspecified exception.
Failure when converting long string to UTF-16 error_code = 2; retcode = 0; StringData.size = 40487; StringData.data = etc..
03-27 10:27:50.965 17750-17750/? A/art﹕ art/runtime/check_jni.cc:65] JNI DETECTED ERROR IN APPLICATION:
input is not valid Modified UTF-8: illegal continuation byte 0x2e
03-27 10:27:50.965 17750-17750/? A/art﹕ art/runtime/check_jni.cc:65] string: 'Unspecified exception.
Failure when converting long string to UTF-16 error_code = 2; retcode = 0; StringData.size = 40487; StringData.data =
我现在的问题是为什么会发生这个错误?
【问题讨论】:
-
您使用的是哪个版本的 Realm?
-
0.80.0.仅当我在调试并希望在调试器中查看结果时才会出现此问题。也可能来自 Android Studio。
-
我可以看到您正在使用 ART。你在使用 Dalvik 时会遇到同样的错误吗?