Bu isimde bir görev zaten mevcut olduğu için görev 'sarmalayıcı' eklenemez


112

Kurarken 'init AwesomeProject yerli tepki' ı çalıştırdığınızda bu hatayı alıyorum react-native run-android:

Could not determine java version from '11.0.1'.

Hızlı bir Google distributionUrl, Gradle sarmalayıcıda güncellemem gerektiğini öneriyor . Bunu yaptıktan sonra yeni bir hatayla karşılaştım:

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

Sorunun dosyada olduğunu gösteriyor:

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

buna benzeyen

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

Bunun ne yaptığını anlamaya çalışıyorum. Bir şeyin kutudan çıktığı gibi yürümemesi garip görünüyor. Benzer bir sorunla karşı karşıya olan var mı?


4
herhangi bir güncelleme var mı veya hangisi doğru cevaplanmış? Değilse, o zaman nasıl çözdün? cevabın üzerinde başka sağ tik işareti simgesi. >> :-)
ganeshdeshmukh

Yanıtlar:


160

Ayrıca güncelleyebilirsiniz

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

-e

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

Gibi

4.8'de kullanımdan kaldırılan yerleşik görevlerin geçersiz kılınması artık bir hataya neden oluyor.

Yerleşik bir görevi değiştirmeye çalışmak, aşağıdakine benzer bir hata üretecektir:

Bu isimde bir görev zaten mevcut olduğu için görev 'sarmalayıcı' eklenemez.

Görevler ve özelliklerin son paragrafına bakın : https://docs.gradle.org/5.2.1/userguide/upgrading_version_4.html

ve Sarmalayıcı görevini özelleştirme : https://docs.gradle.org/5.2.1/userguide/gradle_wrapper.html#customizing_wrapper


9
Bu yanıt, OP'nin gerçek sorusunu yanıtlamaz, ancak benim gibi Google çalışanları için çok yardımcı olduğundan, oy verdim.
Franklin Yu

OP'nin problemini çözer. Eski bir Gradle sürümü kullanıyordu ve daha sonra eski bir çözüm kullanarak güncellemeye bağlandı ve bu cevap doğru çözümü sağlıyor. (Elbette, @FranklinYu, OP'nin sorusu olarak "benzer bir sorunla karşı karşıya olan var mı?" Sorusunu alırsanız, basit bir "evet" yeterli olacaktır.)
Michael Piefel

91

Ortamınızda hangi gradle sürümünü kullanıyorsunuz?

Gradle sürüm 5.x kullanıyorsanız, 「görev sarmalayıcıyı aşağıdaki gibi değiştirmeniz gerekir.

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

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

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

Sonra bu hata geldi. Ne yapacağımı çözemiyorum. HATA: org.gradle.api.Proje türündeki 'myproject' kök projesinde [{type = class org.gradle.api.tasks.wrapper.Wrapper}, build_81gq92nveejavsi3t9efznmk8 $ _run_closure2 @ 55f5bac8] bağımsız değişkenleri için yöntem sarmalayıcısı () bulunamadı .
buddhiv

21

Yorumlarda belirtildiği gibi, takip edin - https://stackoverflow.com/a/46867575/4982729 :

  1. Dosyayı açın ve düzenleyin app-folder/android/gradle/wrapper/gradle-wrapper.properties; hattı güncelle

    distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-all.zip
  2. Dosyada AwesomeProject/android/build.gradleyorum yapmayı deneyin

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

12

"gradle-wrapper.properties" dosyasında bu kodlar zaten varsa

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

o zaman kaldırabilirsin

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

build.gradle'dan


1

Bende de aynı sorun var. kodumdaki sorun, build.gradle'daki başka bir Gradle dosyasındaki çifte bildirimdi

build.gradle

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

0

Build.gradle dosyanızda çalıştırmak için yüksek bir şansınız var, gidin ve sarmalayıcıyla ilgili satırı kaldırın (köşeli parantez vb. Dahil). Ardından, IntelliJ kullanıyorsanız, yenisini otomatik olarak çalışma dizininize getirecektir.


0

Sorunla karşılaştım çünkü görevimi yerel notumu kullanarak değil global gradle kullanarak çalıştırıyordum gradle paketleyicimi .

yani mevcut gradlewdizinimde çalıştırılabilir bir dosyam vardı .

Ama şu komutu çalıştırıyordum:

gradle <task>

Ne zaman koşmam gerekirdi:

./gradlew <task>

Muhtemelen global derecelendirmeyi çalıştırmanın yerel bir sarmalayıcı oluşturmaya çalışması ve bir tane zaten mevcut olması nedeniyle.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.