【报错问题】[Android] 打包时出现资源重复问题 Error Duplicate resources

3,910 阅读1分钟

目录:

  1. 版本说明
  2. 报错内容
  3. 解决办法

一、版本说明

本机系统: Mac
react: "16.11.0"
react-native: "0.62.2"
node: 12.16.2       # node -v
npm: 6.14.4         # npm -v

二、[Android] 打包时出现资源重复问题

Error: Duplicate resources  

三、解决办法

3.1、解决方法,参考这里

1. 找到文件`/node_modules/react-native/react.gradle`,增加以下内容  
doFirst { ... }
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()
}


2.使用 `Android Studio` 打包,点击顶部菜单 `build -> clean project`,清除打包缓存。     

3.重新构建项目(跑一次,不然找不到打包目录),然后执行打包命令即可。  

写给自己的随笔,有问题欢迎指出