尝试查看领域数据库时,出现连接丢失错误。这就是我激发Stetho和领域的方式。我仍然收到此错误。我什至放了withDeleteIfMigrationNeeded(true)。仍然没用。
public class ApplicationClass extends Application {
// Database Name...
private static final String DB_NAME = "Cheruvu.realm";
@Override
public void onCreate() {
super.onCreate();
configureRealm();
}
private void configureRealm() {
Realm.init( this );
RealmInspectorModulesProvider realmInspectorModulesProvider = RealmInspectorModulesProvider.builder(this)
.withDeleteIfMigrationNeeded(true)
.build();
Stetho.initialize(
Stetho.newInitializerBuilder( this )
.enableDumpapp( Stetho.defaultDumperPluginsProvider( this ) )
.enableWebKitInspector( realmInspectorModulesProvider )
.build() );
RealmConfiguration config = new RealmConfiguration.Builder()
.name( DB_NAME )
.deleteRealmIfMigrationNeeded()
.encryptionKey( generateSecurityKey() )
.build();
Realm.deleteRealm( config );
Realm.setDefaultConfiguration( config );
}
private byte[] generateSecurityKey() {
ByteBuffer bb = ByteBuffer.wrap( new byte[64] );
bb.putInt( UUID.randomUUID().hashCode() );
return bb.array();
}
@Override
public void onTerminate() {
super.onTerminate();
Realm realm = Realm.getDefaultInstance();
if (!realm.isClosed()) {
Realm.getDefaultInstance().close();
}
}
}
这是我的依赖项:
// stetho for database lookup
implementation "com.uphyca:stetho_realm:2.3.0"
implementation "com.facebook.stetho:stetho:1.5.0"
答案 0 :(得分:1)
您缺少领域的加密密钥。
String securityKey = generateSecurityKey();
RealmInspectorModulesProvider realmInspectorModulesProvider = RealmInspectorModulesProvider.builder(this)
.withDeleteIfMigrationNeeded(true)
.withEncryptionKey(DB_NAME, securityKey)
.build();
Stetho.initialize(
Stetho.newInitializerBuilder( this )
.enableDumpapp(Stetho.defaultDumperPluginsProvider(this))
.enableWebKitInspector( realmInspectorModulesProvider )
.build());
RealmConfiguration config = new RealmConfiguration.Builder()
.name( DB_NAME )
.deleteRealmIfMigrationNeeded()
.encryptionKey(securityKey)
.build();