【react-native】react-native打包apk Error: Duplicate resources已解决

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

其他问题可参考:

https://www.jianshu.com/p/b9771bbac546

你可能感兴趣的:(React-native)