web-dev-qa-db-ja.com

その名前のタスクが既に存在するため、タスク 'ラッパー'を追加できません

'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")
}

私はこれが何をするかを理解しようとして何度も行ってきました。箱から出してすぐに動作しないのは奇妙に思えます。誰かが同様の問題に直面していますか?

65
Ben Kemp

更新することもできます

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

およびWrapperタスクのカスタマイズhttps://docs.gradle.org/5.2.1/userguide/gradle_wrapper.html#customizing_wrapper

89
zhouji

ご使用の環境ではどのバージョンの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")
}
66
石塚祐輔

コメントに記載されているように、- 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")
    }
    
18
markroxor

Build.gradleファイルで実行する "タスク"があり、ラッパーに関連する行(ブラケットなどを含む)を削除する可能性が高くなります。次に、IntelliJを使用している場合、IntelliJは自動的に新しいディレクトリを作業ディレクトリに移動します。

0