React native の Android release build で起動しても落ちる時の解決法

React nativeをandroid向けにRelease buildして署名済みapkを生成する方法は基本的に公式ドキュメントに書いてあるようにすればいいが、そのままやっても起動後すぐに落ちるようになってしまった。結果的には、jsファイルがうまくbundleされてなかったらしいので、自分でやる。

公式ドキュメント中のGenerating the release APKで ./gradlew assembleRelease を実行した直後のタイミングで、プロジェクト直下で react-native bundle –platform android –dev false –entry-file index.js –bundle-output android/app/src/main/assets/index.android.bundle –assets-dest android/app/src/main/res/ を実行する。この時、./gradlew assembleReleaseを実行する前にbundleしてはいけない。必ず後にやる。

その後 react-native run-android –variant=release で実機にデプロイしテストするが、このとき入れてるnodeモジュールによってはエラーが出る。エラーメッセージが Error: Duplicate resources なら、このメッセージの直前に出力されるファイルパスの該当ファイルをすべて削除すれば動くはず。