我有一个使用Realm的android项目。 我正在尝试集成LeakCanary以查找内存泄漏,但是当LeakCanary尝试创建报告时,它会因异常而崩溃
encrypted.realm: Encrypted interprocess sharing is currently unsupported
据我所知,LeakCanary尝试从不同进程访问Realm,导致崩溃。
如何解决这个问题?是否有人在项目中使用Realm和LeakCanary?
答案 0 :(得分:0)
正如我在本主题https://github.com/realm/realm-java/issues/3053中发现的那样,您可以通过这种方式跳过LeakCanary进程的Realm初始化
if (!LeakCanary.isInAnalyzerProcess(this)) {
byte[] key = new byte[64];
Arrays.fill(key, (byte) 0);
config = new RealmConfiguration.Builder(this).encryptionKey(key).build();
realm = DynamicRealm.getInstance(config);
}
或者,如果您仍然需要Realm,则可以创建哑区域配置
Realm.init(context);
if (LeakCanary.isInAnalyzerProcess(context)) {
return new RealmConfiguration.Builder().build();
}