React Native assembleRelease不适用于版本0.59.10

时间:2019-09-15 18:32:10

标签: react-native gradle react-native-android

当我尝试在项目中进行发行时,出现以下错误。 当我使用android studio和使用./gradlew assembleRelease

时都会发生这种情况
> Task :app:bundleReleaseJsAndAssets FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:bundleReleaseJsAndAssets'.
> A problem occurred starting process 'command '/<path>/ mobile/android/app/build/generated/assets/react/release/index.android.bundle.map''

但是,如果我像这样发布,它会起作用:

react-native bundle --platform android --entry-file index.js --reset-cache --bundle-output android/app/src/main/assets/index.android.bundle --dev false --assets-dest android/app/src/main/res/

之后

./gradlew assembleRelease -x bundleReleaseJsAndAssets

由于第二种情况有效,而第一种情况无效,因此我认为bundleReleaseJsAndAssets尝试使用的路径有些奇怪。它在空位置寻找命令('command '/<path>/ mobile/android/app/build/generated/assets/react/release/index.android.bundle.map')。不是在错误的目录中查找吗?

bundleReleaseJsAndAssets是否应该尝试使用第二种情况下的位置? (--bundle-output android/app/src/main/assets/index.android.bundle)?

2 个答案:

答案 0 :(得分:1)

那可能是因为:

  1. 之前,每个index.jsandroid都有两个单独的文件夹iOS。因此,它在编译期间创建了两个不同的捆绑文件,例如index.android.jsindex.iOS.js文件。

  2. 现在,将这两个文件合并并使用称为index.js的单个文件进行渲染。

您的命令:react-native bundle --platform android --entry-file index.js --reset-cache --bundle-output android/app/src/main/assets/index.android.bundle --dev false --assets-dest android/app/src/main/res/基本上适用于index.js,因为可能存在一个index.js文件,但没有index.android.js

要使其正常运行,请将您的react-native-sentry升级到版本react-native-sentry@0.43.2Please refer here

答案 1 :(得分:0)

尝试使用此命令可以生成发行版

react-native run-android --variant=release

使用此功能,您无需手动制作捆绑包。此命令会自动创建您的捆绑包并同时释放二者。