2016-06-15 10 views
1

私はiOSアプリケーションからレルムDBファイルを取得しており、アンドロイドでアプリの一部として出荷したいと考えています。私たちがこれを出荷しているのは今回が初めてで、移行の問題はありません。だから、私はアプリをインストールし、以下のコードを使用しての活動でそれを実行しようクリーン:アンドロイド:資産からレルムDBファイルをロード中にエラーが発生しました

RealmConfiguration config = new  RealmConfiguration.Builder(TestActivity.this) 
        .name(Realm.DEFAULT_REALM_NAME) 
        .assetFile(TestActivity.this, MY_DB_FILE_NAME) 
        .build(); 


      Realm.setDefaultConfiguration(config); 
      Log.d(TAG,"Config schema version"+config.getSchemaVersion()); 
      Realm realm = Realm.getDefaultInstance(); 
      if (realm.isEmpty()) { 
       subscriber.onError(new Exception("Realm db is empty")); 
      } else { 
       realm.close(); 
       subscriber.onCompleted(); 
      } 

私は私のGradleから王国1.0.0

を使用しています:

classpath "io.realm:realm-gradle-plugin:1.0.0" 

問題:私は以下の例外を参照してください。

java.lang.IllegalArgumentExceptionが:ディスク上のレルムが指定されたものよりも新しい:v1の対V0

これは私がロードしています初めて、ノー移行です。このエラーが発生するのはなぜですか?

ありがとうございました。

+0

はい私は同じ問題を抱えています。何かが助けになることを願って –

答えて

0

スキーマバージョンを指定しないと、Realmはアセットの値は1ですが、Realmはそれが0であると見なします。これは、Realmが内部的に評価されると後で気付きます。これを解決するには、バージョンを用意してください。

RealmConfiguration config = new  RealmConfiguration.Builder(TestActivity.this) 
       .name(Realm.DEFAULT_REALM_NAME) 
       .assetFile(TestActivity.this, MY_DB_FILE_NAME) 
       .schemaVersion(1) 
       .build(); 
+0

didnt work。 W/System.err:io.realm.exceptions.RealmMigrationNeededException:RealmMigrationを指定する必要があります。 W/System.err:at io.realm.BaseRealm.migrateRealm(BaseRealm.java:680) W/System.err:at io。 realm.Realm.migrateRealm(Realm.java:1221) W/System.err:io.realm.Realm.migrateRealm(Realm.java:1208) W/System.err:io.realm.Realm.createInstance Realm.java:235) W/System.err:io.realm.RealmCache.createRealmOrGetFromCache(RealmCache.java:126) W/System.err:at io.realm.Realm.getInstance(Realm.java:192) – techtinkerer

+0

RealmConfiguration config = new RealmConfiguration.Builder(ctx) .name(Realm.DEFAULT_REALM_NAME) .assetFile(TestActivity.this、MY_DB_FILE_NAME) .schemaVersion(1) .build(); Realm.setDefaultConfiguration(config); レルムrealm = Realm.getInstance(config); if(realm.isEmpty()){ subscriber.onError(新規Exception( "Realm is empty"))); } else { subscriber.onCompleted(); } – techtinkerer

+0

iOS、1.0.0で実行しているレルムのバージョンは何ですか? –

関連する問題