2

あらかじめ設定されたレルムと、反応するネイティブアプリをバンドルしようとしています。あらかじめ設定されたレルムにネイティブのアプリケーションをバンドルします。

私はこれをアンドロイドのために働かせようと試みたのです。 https://github.com/realm/realm-js/issues/532

資産フォルダにレルムを配置することをお勧めします:(android/app/src/main/assets)。私はそうしています

enter image description here

をしかし、私はRealm.copyBundledRealmFilesを(実行時に)そのような私の基本コンポーネントのcontrructorに:

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

私はビルドエラーを取得します

enter image description here

これを修正して、あらかじめ設定された領域とアプリをバンドルできるようにするには、非常に助かりますul。私はかなりの数時間のためにこれに取り組んでいて、ちょうどそれを理解するように見えない!

1)/メイン/資産がレルムを貼り付けるフォルダアンドロイド/アプリ/ srcには:

答えて

5

okがアンドロイドのためにこれを考え出しました。それらを上に移動するために使用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); 

その後、rebundleするすべての端末を閉じて、反応ネイティブ実行のAndroidを実行しindex.android.jsで

2)。レルムは(Macの場合)に移動するには、コマンドラインを使用してオーバーcompiedされているかどうかをチェックすることができます

library/android/sdk/tools

、コマンドmonitor

が、これはデバイスモニタを開きます。次に、デバイスモニタでファイルmangagerをクリックし、data/data/{packageName}/filesにナビゲートして、領域をコピーしてください。

あなたは、パッケージを使用あなたのアプリでそのパスを参照することができるようにしたい場合は、次のファイルシステムにあなたのパスを与えるために

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

を:

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

することができますレルムにアクセスするには、新しいレルムコンストラクタのconfigパスプロパティでこれを使用します。

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

これは同じ問題で誰にもお役に立てば幸い!

+0

こんにちは、あらかじめ入力済みのレルムファイルをどのように作成するのか教えてください。 Windows + Android – Mike

+0

には、1)レルムブラウザで手動で行うか、2)アルゴリズム的に標準的な方法でhttps:// realmを表示するかのいずれかを設定できます。io/docs/javascript/latest/ – LuckyLukas

+0

1)Macを持っていない2)docsが不足している、またはiosで見つからない – Mike

関連する問題