programing

같은 이름의 작업이 이미 있으므로 '래퍼' 작업을 추가할 수 없습니다.

easyjava 2023. 2. 23. 23:07
반응형

같은 이름의 작업이 이미 있으므로 '래퍼' 작업을 추가할 수 없습니다.

react-native init Awesome Project' 설치 시 실행 시 이 오류가 나타납니다.react-native run-android:

Could not determine java version from '11.0.1'.

퀵 구글에서 추천하는 것은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")
}

이게 뭘 하는 건지 알아내기 위해 왔다 갔다 했어요개봉 후 바로 작동하지 않는 것이 이상하다.비슷한 문제에 직면한 사람이 있습니까?

갱신할 수도 있습니다.

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

당신의 환경에서 어떤 버전의 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")
}

gradle-module.properties 파일에 이미 이러한 코드가 있는 경우

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

그런 다음 제거할 수 있습니다.

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

build.gradle에서

코멘트에 기재되어 있는 바와 같이, 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")
    }
    

저도 같은 문제가 있어요.내 코드의 문제는 build.gradle의 다른 Gradle 파일에 대한 이중 선언이었다.

build.gradle

apply from: otherFile.gradle
... build. gradle code...
apply from: otherFile.gradle //Again 

build.gradle 파일에서 실행할 "태스크"가 있을 가능성이 높으며 래퍼와 관련된 행(괄호 포함)을 삭제합니다.IntelliJ 를 사용하고 있는 경우는, 새로운 것을 작업 디렉토리에 자동적으로 가져옵니다.

로컬 gradle 래퍼가 아닌 글로벌 gradle을 사용하여 작업을 실행 중이었기 때문에 문제가 발생했습니다.

즉, 현재 디렉토리에는gradlew실행 가능.

하지만 이 명령어를 실행하고 있었습니다.

gradle <task>

내가 뛰었어야 할 때:

./gradlew <task>

아마도 글로벌 그래들을 실행하면 로컬 래퍼(이미 존재하는 래퍼)가 생성되기 때문입니다.

언급URL : https://stackoverflow.com/questions/53709282/cannot-add-task-wrapper-as-a-task-with-that-name-already-exists

반응형