反応ネイティブ0.57以降、gradleがバンドルとアセットを見つけることを期待しているディレクトリが変更されたため、以前に提供された回答はどれも機能しなくなりました。
反応ネイティブバンドルなしのシンプルな方法
デバッグビルドをビルドする最も簡単な方法は、react-native bundle
コマンドをまったく使用せずに、単にapp/build.gradle
ファイルを変更することです。
ファイル内のproject.ext.react
マップ内app/build.gradle
に、bundleInDebug: true
エントリを追加します。あなたはそれがないようにしたい場合は--dev
、ビルド(警告なしと縮小さバンドル)その後も追加する必要がありdevDisabledInDebug: true
、同じマップにエントリを。
反応ネイティブバンドルを使用
何らかの理由でreact-native bundle
コマンドを使用してバンドルを作成する必要がある場合、またはを使用./gradlew assembleDebug
してバンドルとアセットを含むAPKを作成する場合は、バンドルとアセットを正しいパスに配置する必要があります。それらを見つけます。
反応ネイティブ0.57以降、これらのパスは
android/app/build/generated/assets/react/debug/index.android.js
バンドル用です
そしてandroid/app/build/generated/res/react/debug
資産のために。したがって、手動でバンドルして、バンドルとアセットでAPKをビルドするための完全なコマンドは次のとおりです。
react-native bundle --dev false --platform android --entry-file index.js --bundle-output ./android/app/build/generated/assets/react/debug/index.android.bundle --assets-dest ./android/app/build/res/react/debug
その後
./gradlew assembleDebug
バンドルとアセットのパス
Gradleがバンドルとアセットを探すパスは変更される可能性があることに注意してください。これらのパスの場所を確認するには、ディレクトリreact.gradle
内のファイルを確認してくださいnode_modules/react-native
。で始まる行とdef jsBundleDir =
、def resourcesDir =
gradleがバンドルとアセットをそれぞれ探すディレクトリを指定します。