自 react-native 0.57 版本起,先前提供的所有答案都已过时,因为 gradle 希望找到 bundle 和资源的目录已更改。
不使用 react-native bundle 的简单方法
构建调试版本最简单的方法是根本不使用 react-native bundle
命令,而是直接修改您的 app/build.gradle
文件。
在 app/build.gradle
文件中的 project.ext.react
映射中,添加 bundleInDebug: true
条目。
如果您希望它不是一个 --dev
构建(无警告和缩小的 bundle),则还应该在同一映射中添加 devDisabledInDebug: true
条目。
使用 react-native bundle
如果由于某种原因您需要或想要使用 react-native bundle
命令创建 bundle,然后使用 ./gradlew assembleDebug
创建包含 bundle 和资源的 APK,则必须确保将 bundle 和资源放置在 gradle 可以找到的正确路径中。
自 react-native 0.57 版本起,这些路径为
android/app/build/generated/assets/react/debug/index.android.js
(用于 bundle)
和 android/app/build/generated/res/react/debug
(用于资源)。因此,手动捆绑和构建包含 bundle 和资源的 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
bundle和资源路径
请注意,gradle查找bundle和资源的路径可能会更改。要找到这些路径的位置,请查看node_modules/react-native
目录下的react.gradle
文件。以def jsBundleDir =
和def resourcesDir =
开头的行分别指定gradle查找bundle和资源的目录。