3

我正在尝试将预先填充的领域与反应本机应用程序捆绑在一起。

我遵循了这个,试图让它适用于android。 https://github.com/realm/realm-js/issues/532

建议将领域放在资产文件夹中:(android/app/src/main/assets)。我已经这样做了:

在此处输入图像描述

但是,当我在基本组件的构造器中运行 Realm.copyBundledRealmFiles() 时,如下所示:

constructor(props) {
    super(props);
    Realm.copyBundledRealmFiles();
  }

我收到构建错误:

在此处输入图像描述

解决此问题以便我可以将预先填充的领域与应用程序捆绑在一起的任何帮助都将非常有帮助。我已经为此工作了好几个小时,但似乎无法弄清楚!

4

1 回答 1

7

好的,为 android 解决了这个问题:

1) 在 android/app/src/main/assets 文件夹中粘贴领域。

2) 在 index.android.js 中:使用 copyBundledRealmFiles() 将它们移过来:

import { AppRegistry } from 'react-native';
import React from 'react';
import Realm from 'realm';
import App from './src/App';

const App2 = () => {
  Realm.copyBundledRealmFiles();
  return (
    <App />
  );
};

AppRegistry.registerComponent('SenecaV2', () => App2);

然后关闭所有终端并运行 react-native run-android 重新捆绑。

您可以通过使用命令行转到(在 mac 上)检查领域是否正在编译

library/android/sdk/tools

然后命令monitor

这将打开设备监视器。然后,在设备监视器中单击文件管理器并导航到 data/data/{packageName}/files,您应该会看到已复制的领域。

如果您希望能够在您的应用程序中引用该路径,请使用该包:

https://github.com/johanneslumpe/react-native-fs

为您提供文件系统的路径:

const path = `${RNFS.DocumentDirectoryPath}/{nameOfYourPrePackagedRealmFile}`

然后,您可以在新的领域构造函数配置路径属性中使用它来访问领域。

https://realm.io/docs/javascript/1.0.0/api/Realm.html#path

希望这可以帮助任何有同样问题的人!

于 2017-03-19T15:35:57.347 回答