无法将任务“包装器”添加为具有该名称的任务已存在

问题描述 投票:31回答:4

当安装'react-native init AwesomeProject'时,我在运行'react-native run-android'时遇到上述错误

Could not determine java version from '11.0.1'.

一个快速的谷歌建议我需要更新Gradle-wrapper中的distributionUrl。这样做后,我面临一个新的错误

Cannot add task 'wrapper' as a task with that name already exists.

它表明问题出在文件中:

/AwesomeProject/android/build.gradle' line: 36

看起来像这样

task wrapper(type: Wrapper) {
    gradleVersion = '4.4'
    distributionUrl = distributionUrl.replace("bin", "all")
}

我一直在试图弄清楚这是做什么的。奇怪的是,某些东西不能直接开箱即用。是否有人面临类似的问题?

android reactjs react-native wrapper expo
4个回答
78
投票

你也可以更新

task wrapper(type: Wrapper) {
    gradleVersion = '4.4'    
    distributionUrl = distributionUrl.replace("bin", "all")
}

wrapper {
    gradleVersion = '4.4'
    distributionUrl = distributionUrl.replace("bin", "all")
}

在4.8中弃用的覆盖内置任务现在会产生错误。

尝试替换内置任务将产生类似于以下内容的错误:

无法将任务“包装器”添加为具有该名称的任务已存在。

请参阅任务和属性的最后一段:https://docs.gradle.org/5.2.1/userguide/upgrading_version_4.html

和自定义包装器任务:https://docs.gradle.org/5.2.1/userguide/gradle_wrapper.html#customizing_wrapper


57
投票

您在环境中使用哪个版本的gradle?

如果您使用gradle版本5.x,则必须修改“任务包装器”,如下所示。

task wrapper(type: Wrapper) {
    gradleVersion = '4.4'
    distributionUrl = distributionUrl.replace("bin", "all")
}

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

wrapper {
    gradleVersion = '4.4'
    distributionUrl = distributionUrl.replace("bin", "all")
}

16
投票

正如评论中提到的那样 - https://stackoverflow.com/a/46867575/4982729

  1. 打开并编辑文件app-folder/android/gradle/wrapper/gradle-wrapper.properties;更新线 distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-all.zip
  2. 在文件AwesomeProject/android/build.gradle尝试评论 task wrapper(type: Wrapper) { gradleVersion = '4.4' distributionUrl = distributionUrl.replace("bin", "all") }

0
投票

您很可能在build.gradle文件中运行“任务”,去除与包装器相关的行(包括其括号等)。然后,如果您使用的是IntelliJ,它会自动将新的IntelliJ带到您的工作目录。

© www.soinside.com 2019 - 2024. All rights reserved.