【问题标题】:Android-studio ERROR: Cannot add task 'copyDebugIconFonts' as a task with that name already existsAndroid-studio 错误:无法将任务“copyDebugIconFonts”添加为具有该名称的任务已存在
【发布时间】:2019-08-12 13:02:29
【问题描述】:

我有 React Native 项目。当我构建 Android 版本时,我得到一个 ERROR: Cannot add task 'copyDebugIconFonts' 作为具有该名称的任务已经存在。在我的终端我有这个错误: FAILURE:构建失败并出现异常。

  • 在哪里: 脚本'/Users/evgeniykireev/openCalls/node_modules/react-native-vector-icons/fonts.gradle' 行:16

  • 出了什么问题: 无法添加任务“copyDebugIconFonts”,因为该名称的任务已存在。

我的 build.gradle:

buildscript {
    ext {
        buildToolsVersion = "28.0.3"
        minSdkVersion = 16
        compileSdkVersion = 28
        targetSdkVersion = 28
        supportLibVersion = "28.0.0"
    }
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:3.4.1")

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenLocal()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url("$rootDir/../node_modules/react-native/android")
        }
        maven {
            // Android JSC is installed from npm
            url("$rootDir/../node_modules/jsc-android/dist")
        }

        google()
        jcenter()
    }
}

我的 fonts.gradle:

def config = project.hasProperty("vectoricons") ? project.vectoricons : [];

def iconFontsDir = config.iconFontsDir ?: "../../node_modules/react-native-vector-icons/Fonts";
def iconFontNames = config.iconFontNames ?: [ "*.ttf" ];

gradle.projectsEvaluated {
    android.applicationVariants.all { def variant ->
        def targetName = variant.name.capitalize()
        def targetPath = variant.dirName

        // Create task for copying fonts
        def currentFontTask = tasks.create(
                name: "copy${targetName}IconFonts",
                type: Copy) {
            into("${buildDir}/intermediates")

            iconFontNames.each { fontName ->

              from(iconFontsDir) {
                include(fontName)
                into("assets/${targetPath}/fonts/")
              }

              // Workaround for Android Gradle Plugin 3.2+ new asset directory
              from(iconFontsDir) {
                include(fontName)
                into("merged_assets/${variant.name}/merge${targetName}Assets/out/fonts/")
              }

              // Workaround for Android Gradle Plugin 3.4+ new asset directory
              from(iconFontsDir) {
                include(fontName)
                into("merged_assets/${variant.name}/out/fonts/")
              }
            }
        }

        currentFontTask.dependsOn("merge${targetName}Resources")
        currentFontTask.dependsOn("merge${targetName}Assets")

        [
            "processArmeabi-v7a${targetName}Resources",
            "processX86${targetName}Resources",
            "processUniversal${targetName}Resources",
            "process${targetName}Resources"
        ].each { name ->
            Task dependentTask = tasks.findByPath(name);

            if (dependentTask != null) {
                dependentTask.dependsOn(currentFontTask)
            }
        }
    }
}

你能帮我吗)

【问题讨论】:

    标签: android android-studio react-native fonts icons


    【解决方案1】:

    这个包“react-native-vector-icons”已被多次添加到您的 build.gradle 文件中。

    要解决这个问题,只需转到 android>build.gradle 并搜索“react-native-vector-icons”。如果您发现了两次,则删除该行。例如,我刚刚注释掉了这个 =>

    // 应用自:“../../node_modules/react-native-vector-icons/fonts.gradle”

    【讨论】:

    • 这件事发生在我身上。我曾经使用 npm 安装并且不得不手动添加这一行,从那时起我一直在这样做。今天我用yarn安装了它,看起来它自动添加了第二行。他开始犯这个错误。感谢您的解决方案。
    【解决方案2】:

    就我而言,我在 Android/setting.gradle 中删除了此代码

    include ':react-native-vector-icons'
    project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')
    

    【讨论】:

      猜你喜欢
      • 2016-07-10
      • 2019-08-02
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-11
      相关资源
      最近更新 更多