RN开发跨平台项目已经不再陌生,最近使用jenkins持续集成是通过
./gradlew clean
./gradlew assembleRelease
打包APK 遇到两个错误
⑴Gradle Permission denied
解决办法就是授权 chmod +x gradlew 或者 sudo chmod +x gradlew
⑵react-native打包apk Error: Duplicate resources
解决办法为 找到你的RN项目,目录node_modules/react-native/下的react.gradle文件,doFirst块下添加doLast代码块,如下编辑
不想截图,因为让遇到这个问题手敲真的很累而且容易出错
doLast {
def moveFunc = { resSuffix ->
File originalDir = file("$buildDir/generated/res/react/release/drawable-${resSuffix}");
if (originalDir.exists()) {
File destDir = file("$buildDir/../src/main/res/drawable-${resSuffix}");
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()
}
注意:如果还出现以上问题就把项目res中的生成重复的图片资源删除,再打包
编辑保存后再重新执行清理项目,编译打包即可。
参考文档:
https://reactnative.cn/docs/0.43/signed-apk-android.html
其他问题可参考: