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.