Realm Java预包装数据库

时间:2015-03-26 17:47:24

标签: java android realm

我正在尝试将预加载的Realm数据库放入我的应用程序中。

我在做什么:

  1. 我创建了一个简单的应用程序,可以将数据从JSON加载到Realm数据库(default1.realm)。

  2. 我有我的实际应用,我试图将加载器创建的default.realm文件放在res / raw文件夹中,并使用迁移示例copyBundledRealmFile()函数将default.realm复制到getFilesDir( )。

  3. 完成所有这些操作后,当我尝试执行Realm.getInstance()时,会返回一个空的Realm。

  4. 我做错了什么?

    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 =
    

    我的问题是现在为什么会发生这种错误?

1 个答案:

答案 0 :(得分:0)

您说您的文件名为default.realm,但您在上面的代码段中将其称为default1。如果您尝试使用default吗?

是否有用