【问题标题】:No default RealmConfiguration was found. Call setDefaultConfiguration() first没有找到默认的 RealmConfiguration。先调用 setDefaultConfiguration()
【发布时间】: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 无法自行初始化。

标签: android realm


【解决方案1】:

我发现了我的问题。领域与它无关。由于清单中的 allowBackup 属性,我的自定义应用程序的 onCreate 从未在第一次运行应用程序时被调用。将其设置为 false 可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    相关资源
    最近更新 更多