2016-03-31 4 views
0

私はアンドロイドプロジェクトで領域データベースを使用しています。AndroidでRealmMigrationNeededExceptionをデバッグするには?

私はCSVから生成して自分のエンティティファイルで同じことをした領域データベースに新しい列を追加しました。

ただし、前もってアンインストールしていますが、アプリを起動した場合はRealmMigrationNeededExceptionになります。だから私の生成されたデータベースとエンティティファイルが一致しない場合のようです。

正確に例外を引き起こすものが見つかったかどうかを知りたいと思います。私は、Android Studioで取得するスタックトレースは、私が問題に

FATAL EXCEPTION: main 
Process: de.myCompany.myApp, PID: 5270 
java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x4000010 (has extras) } in [email protected] 
    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:872) 
    at android.os.Handler.handleCallback(Handler.java:739) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.app.ActivityThread.main(ActivityThread.java:5254) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693) 
Caused by: io.realm.exceptions.RealmMigrationNeededException: RealmMigration must be provided 
    at io.realm.BaseRealm.migrateRealm(BaseRealm.java:589) 
    at io.realm.Realm.migrateRealm(Realm.java:1224) 
    at io.realm.Realm.migrateRealm(Realm.java:1213) 
    at io.realm.Realm.createInstance(Realm.java:237) 
    at io.realm.RealmCache.createRealmOrGetFromCache(RealmCache.java:114) 
    at io.realm.Realm.getInstance(Realm.java:197) 
    at de.myCompany.myApp.ImageDownloadController.fillDownloadStack(ImageDownloadController.java:94) 
    at de.myCompany.myApp.ImageDownloadController.<init>(ImageDownloadController.java:37) 
    at de.myCompany.myApp.ImageDownloadController.getInstance(ImageDownloadController.java:42) 
    at de.myCompany.myApp.helper.WifiReceiver.onReceive(WifiReceiver.java:30) 
    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:862) 
    at android.os.Handler.handleCallback(Handler.java:739)  
    at android.os.Handler.dispatchMessage(Handler.java:95)  
    at android.os.Looper.loop(Looper.java:135)  
    at android.app.ActivityThread.main(ActivityThread.java:5254)  
    at java.lang.reflect.Method.invoke(Native Method)  
    at java.lang.reflect.Method.invoke(Method.java:372)  
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)  
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693) 

を解決するのに役立つかもしれない任意の手がかりが含まれていない試行錯誤を除くRealmMigrationNeededExceptionをデバッグする任意の適切な方法はありますか?

+1

あなたの 'RealmConfiguration'に空の' RealmMigration'を追加してみてください。その後、それはあなたに根本的な理由を示す必要があります。 –

+0

@ChristianMelchiorそれはうまくいった。もしあなたが好きなら、あなたは答えを投稿することができます。さもなければ私はそれをやるでしょう。 –

答えて

2

RealmMigrationExceptionNeededエラーが発生した場合、Realmは構成済みの移行を自動的にトリガーして修正しようとします。そのようなRealmMigrationが存在しない場合は、基礎となる原因をオーバーライドする別のRealmMigrationNeededExceptionが取得されます。

実際のエラーを確認するために、ダミーのRealmMigrationを提供するだけです。

私はそれが少し混乱するかもしれない理由を知ることができます、そして、おそらく根本的な原因を含むより良い例外メッセージを投げることを考えるべきです。

+0

はい、そうすべきです。 :)レルムもありがとう。 –

関連する問題