React Native Android生成apk时出现重复文件错误

2024-02-04

当我尝试使用生成 android apk 时./gradlew installRelease,我在控制台中收到此错误:

~/React-Native/mockingbird/android/app/build/intermediates/res/merged/release/drawable-mdpi-v4/src_resources_img_loading.gif: error: Duplicate file.
~/React-Native/mockingbird/android/app/build/intermediates/res/merged/release/drawable-mdpi/src_resources_img_loading.gif: Original is here. The version qualifier may be implied.

I tried Build->Clean Project通过 Android Studio 并运行./gradlew installRelease再次;它也不起作用。

另外,我尝试删除build文件夹,但也没有帮助。


给你一些建议,希望有用。

更新为“react”:“16.7.0”,“react-native”:“0.57.8”

Custom node_modules/react-native/react.gradle来解决重复文件错误完美。添加以下代码到当前BundleTask的创建块(在 doFirst 块之后)

doLast {
    def moveFunc = { resSuffix ->
        File originalDir = file("${resourcesDir}/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()
}

您可以创建脚本来自动执行此操作。

  1. Create android-react-gradle-fix https://github.com/beesightsoft/bss-rct-build-release/blob/master/Script/src/android-react-gradle-fix file
  2. 创建脚本android-release-gradle-fix.js https://github.com/beesightsoft/bss-rct-build-release/blob/master/Script/src/android-release-gradle-fix.js file
  3. Update package.json file:

    “脚本”:{“postinstall”:“节点./android-release-gradle-fix.js” },

就是这样!跑步npm install变得很棒。

Note:如果你跑npm install在像 jenkins 这样的 ci 上,你可能会得到错误:postinstall: cannot run in wd %s %s (wd=%s) node=> 只需使用npm install --unsafe-perm instead

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Native Android生成apk时出现重复文件错误 的相关文章

随机推荐