使用react本机app捆绑预先填充的域

时间:2017-03-19 12:15:08

标签: react-native android-emulator realm android-device-monitor

我正在尝试将预先填充的域与反应原生应用捆绑在一起。

我已经按照这个,试图让这个为Android工作。 https://github.com/realm/realm-js/issues/532

建议将域置于assets文件夹中:(android / app / src / main / assets)。我这样做了:

enter image description here

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

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

我收到了构建错误:

enter image description here

任何帮助修复此问题以便我可以将预先填充的域与应用程序捆绑在一起将非常有帮助。我一直在研究这个问题已经有好几个小时了,似乎无法解决这个问题!

1 个答案:

答案 0 :(得分:5)

好的想出来的安卓:

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

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

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

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

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

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

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

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

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