RealmDB - React Native - 无法在路径上打开一个领域。管理'

时间:2017-01-15 02:02:53

标签: android react-native realm genymotion

在Genymotion上运行Android的反应原生项目中,我运行了应用程序。有一次,我收到了一个问题,并从虚拟机中卸载了应用程序。重新运行应用程序后,我收到了提醒:

Unable to open a realm at path '.management'.
Please use a path where your app has read-write permissions. <unknown>
    index.js:100 loadModuleImplementation
    require.js:171 guardedLoadModule
    require.js:123
_require
    require.js:107 <unknown>
    Repeaters.js:6 loadModuleImplementation
    require.js:171 guardedLoadModule
    require.js:123
_require
    require.js:107 <unknown>
    NavigationRouter.js:12 loadModuleImplementation
    require.js:171 guardedLoadModule
    require.js:123
_require
    require.js:107 <unknown>
    RootContainer.js:5 loadModuleImplementation
    require.js:171 guardedLoadModule
    require.js:123
_require
    require.js:107 <unknown>
    index.android.js:8 loadModuleImplementation
    require.js:171 guardedLoadModule
    require.js:116
_require
    require.js:107 global code
    require-0.js:1

我尝试关闭Genymotion,通过adb shell卸载,通过adb shell手动设置权限。我似乎无法解决问题。

有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

由于migrations,我遇到了同样的问题。在ios工作正常,但在Android没有。

之前的代码

let nextSchemaIndex = Realm.schemaVersion(Realm.defaultPath);
while (nextSchemaIndex < schemas.length) {
  const migratedRealm = new Realm(schemas[nextSchemaIndex]);
  nextSchemaIndex += 1;
  migratedRealm.close();
}

现在代码

let nextSchemaIndex = Realm.schemaVersion(Realm.defaultPath);
while (nextSchemaIndex < schemas.length) {
  const migratedRealm = new Realm({ ...schemas[nextSchemaIndex] });
  nextSchemaIndex += 1;
  migratedRealm.close();
}

为Realm构造函数创建一个新对象可以解决问题。

希望它有所帮助。

我没有为架构设置路径,但也许this也有帮助。