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

百般思念 提交于 2019-11-30 10:40:29

You can also update

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

to

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

As

Overriding built-in tasks deprecated in 4.8 now produces an error.

Attempting to replace a built-in task will produce an error similar to the following:

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

see the last paragraph of Tasks & properties: https://docs.gradle.org/5.2.1/userguide/upgrading_version_4.html

and Customizing the Wrapper task: https://docs.gradle.org/5.2.1/userguide/gradle_wrapper.html#customizing_wrapper

which version of gradle do you use in your environment?

If you use gradle version 5.x you have to modify 「task wrapper」 as below.

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

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

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

As mentioned in the comments follow - https://stackoverflow.com/a/46867575/4982729:

  1. Open and edit the file app-folder/android/gradle/wrapper/gradle-wrapper.properties; update the line

    distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-all.zip
    
  2. In file AwesomeProject/android/build.gradle try commenting out

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

if "gradle-wrapper.properties" file already have these codes

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip

then you can remove

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

from build.gradle

There's a high chance you have a "task" to run in your build.gradle file, go and remove the line related to wrapper (including its bracket and so on). Then, if you are using IntelliJ, it will automatically bring the new one to your working directory.

I have the same issue. the problem in my code was a double declaration on another Gradle file in build.gradle

build.gradle

apply from: otherFile.gradle
... build. gradle code...
apply from: otherFile.gradle //Again 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!