怎樣打包何恶,可以參考官方文檔
https://reactnative.cn/docs/signed-apk-android/
或者這篇文章也不錯
https://www.cnblogs.com/shaoting/p/7117454.html
按照上面的打包又可能出現(xiàn)以下的錯誤
1熔吗、
......android/app/build/intermediates/res/merged/release/drawable-hdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png: error: uncompiled PNG file passed as argument. Must be compiled first into .flat file..
error: failed parsing overlays.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:processReleaseResources'.
> Failed to process resources, see aapt output above for details.
* Try:
Run with **--stacktrace** option to get the stack trace. Run with **--info** or **--debug** option to get more log output. Run with **--scan** to get full insights.
* Get more help at [https://help.gradle.org](https://help.gradle.org)
解決的辦法
原因及解決方法:在gradle.properties文件中添加以下行:android.enableAapt2 = false凶异,它實質(zhì)上使用舊的aapt來獲取資源膘茎。
- 可能出現(xiàn)的錯誤
....../android/app/build/intermediates/res/merged/release/drawable-hdpi-v4/node_modules_reactnavigationstack_dist_views_assets_backicon.png: error: Duplicate file.
....../android/app/build/intermediates/res/merged/release/drawable-hdpi/node_modules_reactnavigationstack_dist_views_assets_backicon.png: Original is here. The version qualifier may be implied.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:processReleaseResources'.
> Failed to process resources, see aapt output above for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
解決辦法有兩種:
第一種:
在這個目錄下的文件node_modules/react-native/react.gradle :
在這方法里面 def currentBundleTask = tasks.create(...
在doFirst塊之后) 添加以下代碼到里面
doLast {
def moveFunc = { resSuffix ->
File originalDir = file("${resourcesDir}/drawable-${resSuffix}")
if (originalDir.exists()) {
File destDir = file("${resourcesDir}/drawable-${resSuffix}-v4")
ant.move(file: originalDir, tofile: destDir)
}
}
moveFunc.curry("ldpi").call()
moveFunc.curry("mdpi").call()
moveFunc.curry("hdpi").call()
moveFunc.curry("xhdpi").call()
moveFunc.curry("xxhdpi").call()
moveFunc.curry("xxxhdpi").call()
}
第二種解決辦法:
用Android Studio打開android目錄班巩,找到res/drawable目錄隅肥,把里面的圖片文件都刪掉(因為這些圖片都是React Native自動生成的椿肩,所以刪除即可)。再次重新執(zhí)行g(shù)radlew assembleRelease命令就不會報錯了钩骇。