経緯
Realmの導入にあたり、DBを初期化したい状況が生じた。AndroidStudioの機能でメモリを開放する的な機能があるかと思ったら見当たらない・・・
そこで探してみるとRealm.deleteRealm()というメソッドがあるらしく、これを実行するとRealmが初期化されるらしい。
失敗例
まず参考にしたのはこのサイト。
導入はしてみたものの、うまくいかない。
Cannot access ”: it is package-private in ‘Builder’('<init>’にアクセスできません: ‘Builder’のパッケージプライベートです)が解決できない。うーん。
成功例
いったんあきらめて、以下のサイトを見つける。
Realmの初期化 | Initialize Realm | Android
Realm初期化、最新の方法モバイル用データベースといえばRealmです。SQLiteより断然Realm!と私は思っています。さて、初期化についてです。最初に一度だけ実行します。Realm.init(getApplicationContex
ここに書いてある、以下でうまくいった。
1 2 3 |
Realm.init(getApplicationContext()); RealmConfiguration realmConfig = new</code> <code>RealmConfiguration.Builder().deleteRealmIfMigrationNeeded().build(); Realm.deleteRealm(realmConfig);Realm.setDefaultConfiguration(realmConfig); |
このサイトを見ると以下の記載が。
1 2 |
RealmConfiguration realmConfig = new</code> <code>RealmConfiguration.Builder(getApplicationContext()).build(); //error occurs in the new RealmRealm.deleteRealm(realmConfig);Realm.setDefaultConfiguration(realmConfig); |
という書き方でよかったのですが、新しいRealmの場合は使えません。
(Builder(Context context)はpublicではなくなっています。)
どうやら最初の書き方は今のRealmだと使えないみたいですね。
コメント