【问题标题】:Builder (android.content.Context)' is not public in 'io.realm.RealmConfiguration.Builder'. Cannot be accessed from outside package [duplicate]Builder (android.content.Context)' 在 'io.realm.RealmConfiguration.Builder' 中不公开。无法从外部包访问[重复]
【发布时间】:2017-02-14 23:05:03
【问题描述】:

并添加依赖项和插件一切都很好,但是当我放这个时

 private void setUpRealmConfig(){


    RealmConfiguration config = new RealmConfiguration.Builder(getApplicationContext()).deleteRealmIfMigrationNeeded().build();
    Realm.setDefaultConfiguration(config);
}

在 = RealmConfiguration.Builder 的部分。我收到此错误:

Builder(android.content.Context)' 在 'io.realm.RealmConfiguration.Builder' 中不公开。无法从外部包访问

我不知道该怎么办。

【问题讨论】:

  • 因为应该是Realm.init(context); RealmConfiguration config = new RealmConfiguration.Builder().deleteRealmIfMigrationNeeded().build();

标签: java android realm


【解决方案1】:

如果我没记错的话,从 Realm 版本 2 开始,您需要通过调用 init() 方法将 context 传递给 Ream。

  1. 您需要致电 Realm 的init()
  2. 您可以构建您的领域配置

private void setUpRealmConfig(){

    // initialize Realm
    Realm.init(getApplicationContext());

    // create your Realm configuration
    RealmConfiguration config = new RealmConfiguration.
                                   Builder().
                                   deleteRealmIfMigrationNeeded().
                                   build();
    Realm.setDefaultConfiguration(config);
}

【讨论】:

    【解决方案2】:

    在 Realm 中,我们不向 Builder 传递任何参数。要设置 Realm 配置设置,我们只需调用 Builder 初始化。

    例如:-

        Realm.init(getApplicationContext());
    
        RealmConfiguration realmConfiguration = new RealmConfiguration.Builder()
                    .name(Realm.DEFAULT_REALM_NAME)
                    .schemaVersion(0)
                    .deleteRealmIfMigrationNeeded()
                    .build();
        Realm.setDefaultConfiguration(realmConfiguration);
    

    【讨论】:

      【解决方案3】:

      看起来该构造函数已被弃用。尝试改用这个:

      RealmConfiguration config = new RealmConfiguration.Builder().deleteRealmIfMigrationNeeded().build();
      

      【讨论】:

        【解决方案4】:

        要设置 Realm 的配置,请在 Application.class 中执行以下操作

        private void initRealm() {
        
            // initialize realm
            Realm.init(getApplicationContext());
        
            // create realm configuration
            RealmConfiguration defaultConfig = new RealmConfiguration.Builder()
                    .schemaVersion(0)
                    .migration(new RealmLocalMigration())
                    .build();
            Realm.setDefaultConfiguration(defaultConfig);
        
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-05-19
          • 1970-01-01
          • 2018-06-27
          相关资源
          最近更新 更多