Android Gradle 插件问题:将 AGP 更新到 4.1.2 时,React Native 应用程序(刚刚发布)崩溃
Android Gradle Plugin issue: React Native app(just release) crashed when update AGP to 4.1.2
我有一个 React Native 应用程序,在 android gradle 插件 (AGP) 版本 3.5.2 的帮助下,它很好地内置到 Android 应用程序中,react native 版本0.61.5.
我在将 AGP 升级到 4.1.2 时遇到了一个非常奇怪的问题:我可以构建应用程序的调试版本和发布版本,调试版本运行良好,没有任何投诉,但是当我开始发布版本时,我遇到了崩溃这种错误
E/AndroidRuntime: FATAL EXCEPTION: create_react_context
Process: com.app.qa, PID: 21103
java.lang.RuntimeException: Unable to load script. Make sure you're either running a Metro server (run 'react-native start') or that your bundle 'index.android.bundle' is packaged correctly for release.
at com.facebook.react.bridge.CatalystInstanceImpl.jniLoadScriptFromAssets(Native Method)
at com.facebook.react.bridge.CatalystInstanceImpl.loadScriptFromAssets(CatalystInstanceImpl.java:227)
at com.facebook.react.bridge.JSBundleLoader.loadScript(JSBundleLoader.java:28)
at com.facebook.react.bridge.CatalystInstanceImpl.runJSBundle(CatalystInstanceImpl.java:261)
at com.facebook.react.ReactInstanceManager.createReactContext(ReactInstanceManager.java:1175)
at com.facebook.react.ReactInstanceManager.access00(ReactInstanceManager.java:125)
at com.facebook.react.ReactInstanceManager.run(ReactInstanceManager.java:951)
at java.lang.Thread.run(Thread.java:923)
所以,对于 AGP 3.5.2 没问题,对于 AGP 4.1.2,我在发布捆绑包方面遇到了一些麻烦。
它可以用最新版本的 AGP 修复还是我应该降级 AGP?我应该对 build.gradle 进行哪些更改才能修复它?
我在 React Native 问题仪表板上发现了这个问题 https://github.com/facebook/react-native/issues/30761
所以,我应该将 AGP 版本降级到 4.0.1(已检查,有效)或使用 4.1.2 对 react.gradle 脚本
进行小的改动
// mergeResources task runs before the bundle file is copied to the intermediate asset directory from Android plugin 4.1+.
// This ensures to copy the bundle file before mergeResources task starts
def mergeResourcesTask = tasks.findByName("merge${targetName}Resources")
mergeResourcesTask.dependsOn(currentAssetsCopyTask)
我有一个 React Native 应用程序,在 android gradle 插件 (AGP) 版本 3.5.2 的帮助下,它很好地内置到 Android 应用程序中,react native 版本0.61.5.
我在将 AGP 升级到 4.1.2 时遇到了一个非常奇怪的问题:我可以构建应用程序的调试版本和发布版本,调试版本运行良好,没有任何投诉,但是当我开始发布版本时,我遇到了崩溃这种错误
E/AndroidRuntime: FATAL EXCEPTION: create_react_context
Process: com.app.qa, PID: 21103
java.lang.RuntimeException: Unable to load script. Make sure you're either running a Metro server (run 'react-native start') or that your bundle 'index.android.bundle' is packaged correctly for release.
at com.facebook.react.bridge.CatalystInstanceImpl.jniLoadScriptFromAssets(Native Method)
at com.facebook.react.bridge.CatalystInstanceImpl.loadScriptFromAssets(CatalystInstanceImpl.java:227)
at com.facebook.react.bridge.JSBundleLoader.loadScript(JSBundleLoader.java:28)
at com.facebook.react.bridge.CatalystInstanceImpl.runJSBundle(CatalystInstanceImpl.java:261)
at com.facebook.react.ReactInstanceManager.createReactContext(ReactInstanceManager.java:1175)
at com.facebook.react.ReactInstanceManager.access00(ReactInstanceManager.java:125)
at com.facebook.react.ReactInstanceManager.run(ReactInstanceManager.java:951)
at java.lang.Thread.run(Thread.java:923)
所以,对于 AGP 3.5.2 没问题,对于 AGP 4.1.2,我在发布捆绑包方面遇到了一些麻烦。
它可以用最新版本的 AGP 修复还是我应该降级 AGP?我应该对 build.gradle 进行哪些更改才能修复它?
我在 React Native 问题仪表板上发现了这个问题 https://github.com/facebook/react-native/issues/30761
所以,我应该将 AGP 版本降级到 4.0.1(已检查,有效)或使用 4.1.2 对 react.gradle 脚本
进行小的改动 // mergeResources task runs before the bundle file is copied to the intermediate asset directory from Android plugin 4.1+.
// This ensures to copy the bundle file before mergeResources task starts
def mergeResourcesTask = tasks.findByName("merge${targetName}Resources")
mergeResourcesTask.dependsOn(currentAssetsCopyTask)