해당 이름의 작업이 이미 존재하므로 작업 ‘래퍼’를 추가 할 수 없습니다. distributionUrlGradle-wrapper에서을 업데이트해야한다고 제안합니다 . 이 작업을 수행하면

‘react-native init AwesomeProject’를 설치할 때 다음을 실행할 때이 오류가 발생합니다 react-native run-android.

Could not determine java version from '11.0.1'.

빠른 Google은 distributionUrlGradle-wrapper에서을 업데이트해야한다고 제안합니다 . 이 작업을 수행하면 새로운 오류가 발생합니다.

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에서 더 이상 사용되지 않는 기본 제공 작업을 재정의하면 오류가 발생합니다.

기본 제공 작업을 교체하려고하면 다음과 유사한 오류가 발생합니다.

해당 이름의 작업이 이미 존재하므로 작업 ‘wrapper’를 추가 할 수 없습니다.

작업 및 속성 의 마지막 단락을 참조하십시오 :
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")
}

답변

댓글에서 언급했듯이 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")
    }
    

답변

“gradle-wrapper.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에서


답변

나는 같은 문제가 있습니다. 내 코드의 문제는 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>

아마도 전역 gradle을 실행하면 로컬 래퍼를 만들려고 시도하고 이미 존재하기 때문일 것입니다.