【发布时间】:2016-01-06 18:31:04
【问题描述】:
我将 Realm 数据库用于 Android 应用程序。不知道为什么会发生这种情况,但每次我卸载应用程序时,第一次运行总是在我的 Activity 中崩溃:
realm = Realm.getDefaultInstance();
崩溃消息:
Caused by: java.lang.NullPointerException: No default RealmConfiguration was found. Call setDefaultConfiguration() first
在我的应用程序类中,我有这个:
@Override
public void onCreate() {
super.onCreate();
RealmConfiguration config = new RealmConfiguration.Builder(this)
.name("mydb.realm")
.deleteRealmIfMigrationNeeded()
.schemaVersion(1)
.migration(new Migration())
.build();
Realm.setDefaultConfiguration(config);
//...Crashlytics and other things...
}
这次崩溃后的所有未来运行都正常。有什么想法吗?
【问题讨论】:
-
你在哪里打电话给
Realm.getDefaultInstance();?这个方法必须在你调用Realm.setDefaultConfiguration(config);之后才能调用。 -
这可能与
getFilesDir()在第一次运行时有时会在应用程序的onCreate()中返回null的事实有关,并且当这种情况发生时 Realm 无法自行初始化。