Gradle - Hata Bağımsız değişkenler için yöntem uygulaması () bulunamadı [com.android.support:appcompat-v7:26.0.0]


92

Android stüdyosunda mevcut android projesini açmaya çalışıyorum ve gradle uygulamayı hatasız oluşturamıyor

Hata android stüdyosu atmaya devam ediyor

Error:(74, 1) A problem occurred evaluating project ':app'.
> Could not find method implementation() for arguments 
[com.android.support:appcompat-v7:26.0.0] on object of type 
org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

Build.gradle'daki Kodum Sorunumu anlamaya yardımcı olabilecek bağımlılıklarım

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')

// google & support
implementation "com.android.support:appcompat-v7:$supportVersion"
implementation "com.android.support:cardview-v7:$supportVersion"
implementation "com.android.support:recyclerview-v7:$supportVersion"
implementation "com.android.support:design:$supportVersion"
implementation "com.android.support:palette-v7:$supportVersion"
implementation "com.android.support:customtabs:$supportVersion"
implementation "com.android.support:support-v4:$supportVersion"
implementation 'com.google.android.exoplayer:exoplayer:r2.0.4'

// utils
implementation 'com.github.bumptech.glide:glide:4.0.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.0.0'
implementation 'com.koushikdutta.ion:ion:2.1.7'
implementation 'com.github.Commit451:bypasses:1.0.4'
implementation 'com.jakewharton:butterknife:8.8.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.0'
implementation 'com.drewnoakes:metadata-extractor:2.9.1'
implementation "com.orhanobut:hawk:2.0.1"

}

Lütfen sorunu çözmeye yardım edin


5
Android Studio 3.0 kullanıyor musunuz?
Saurabh Thorat

Android'de yeniyim. Ama Evet, önceki hata bundan şikayet ettiği için 3.0'a güncelledim.
cole

2
Hayır Android Studio 2.3.3
Cole

9
Değiştirmeyi deneyin implementationilecompile
Saurabh Thorat

Evet işe yarıyor .. Teşekkürler
cole

Yanıtlar:


86

Değiştir implementation ile compile.

compileyakın zamanda kullanımdan kaldırıldı ve implementationveya ile değiştirildiapi


20
Başlıkta 'Yöntem uygulaması () bulunamadı' yazıyor, bu nedenle 'derleme' yerine 'uygulama' kullanmak yardımcı olmayacak (hata mesajı tamamen yanlış değilse)
Mario Klebsch

Artifactory depomuzda bulunan bir sarmaşık modülü için zaten "uygulama" kullanıyorum. Cevap yardımcı olmuyor
GaVaRaVa

1
Azaltma ile ilgili gerçek doğrudur, ancak başlıkta görüntülenen hata mesajına yol açmaz. Sunil Kumar cevabına bakın: yanlış dosyayı düzenliyorsunuz. Onaylandıysa, yanıltıcı olduğundan lütfen bu yanıtı olumsuz olarak oylayın. TY
FrankKrumnow

45

3.*.*"Uygulamayı" kullanmadan önce Gradle sürümünüzün veya daha yüksek olduğundan emin olun .

Bağımlılıklar altında proje düzeyindeki Gradle dosyasını açın:

dependencies{
    classpath 'com.android.tools.build:gradle:3.1.2'
}

'Gradle-wrapper.properties' dosyasını açın ve şunları ayarlayın distributionUrl:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

veya en son sürüm.

Projeyi senkronize edin. Umarım bu sorununuzu çözer.


27

Bu bağımlılıkları android / build.gradle'a değil, android / app / build.gradle'a eklediğinizden emin olun.


3
Onaylanmış. Bu doğru cevap. Yanlış build.gradle dosyasına bağımlılıklar eklendiğinde yukarıda açıklandığı gibi hata mesajı gösterilir.
FrankKrumnow

@FrankKrumnow Onaylanamıyor çünkü başka sebepler de olabilir.
Sreekanth Karumanaghat

3
Bu benim sorunumdu, bu yüzden doğru dosyaya eklemenizi kontrol etmeye değer!
Josh Undefined

Katılıyorum. Bu doğru cevap olmalı. Çok teşekkürler!
Mitrakov Artem

Bu aynı zamanda benim sorunumdu, 2 günümü düzeltmeye çalıştıktan sonra. Cordova'nın önceki sürümlerinde android / build.gradle'da yaşamak için kullanılan bağımlılıklar, bu yüzden bu benim için çok kafa karıştırıcıydı.
SigmaSteve

25

Kullanabilmek için en az Gradle 3.4 veya daha yenisini kullanmanız gerekir implementation. Daha compileyavaş derleme sürelerine neden olabileceğinden , kullanımdan kaldırılanları kullanmaya devam etmeniz önerilmez . Daha fazla ayrıntı için resmi android geliştirici kılavuzuna bakın:

Modülünüz bir uygulama bağımlılığını yapılandırdığında, Gradle'a, modülün derleme zamanında diğer modüllere bağımlılığı sızdırmak istemediğini bildirir. Yani, bağımlılık diğer modüller için yalnızca çalışma zamanında kullanılabilir. API veya derleme yerine bu bağımlılık yapılandırmasını kullanmak, derleme sisteminin yeniden derlemek için ihtiyaç duyduğu proje miktarını azalttığı için derleme süresinde önemli iyileştirmeler sağlayabilir. Örneğin, bir uygulama bağımlılığı API'sini değiştirirse, Gradle yalnızca bu bağımlılığı ve ona doğrudan bağlı olan modülleri yeniden derler. Çoğu uygulama ve test modülü bu yapılandırmayı kullanmalıdır.

https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#new_configurations

Güncelleme: compile 2018'in sonunda kaldırılacaktır, bu nedenle yalnızca implementationşimdi kullandığınızdan emin olun :

Uyarı: Yapılandırma 'derleme' artık kullanılmıyor ve 'uygulama' ile değiştirildi. 2018 sonunda kaldırılacaktır.


2
Zaten Gradle 4.4 kullanıyorum, hala bu sorunu aniden yaşıyorum.
Sonsuz Döngüler

1
Ve gradle eklentisinin sürümü nedir? @InfiniteLoops
donfuxx

eklenti sürümü 171.4249.39'dur. tools.build:Gradle sürümü 3.0.1
Sonsuz Döngüler

Android Studio'da, sıfırdan yeni bir proje oluşturursanız: Gradle dosyası implementationveya kullanıyor compilemu? @InfiniteLoops
donfuxx

1
Benim için fark milisaniyeydi. Kırılmamışken neden bir şeyi karıştırasınız?
user1608385

9

eklentiyi uygulamak için değiştirin: 'java' eklentiyi uygulamak için: 'java-kitaplığı'

java-kütüphane-eklentisi


Kabul edilen cevap en popüler gibi görünse de, tek doğru cevap bu değildir. Benim durumumda, tam olarak aynı istisnaya (tabii ki farklı nesne) neden olan "uygulama eklentisi: 'java-kitaplığı" nın olmamasıydı. Bu olası çözümü eklediğiniz için @ xiqing-lau'ya teşekkürler.
pfurbacher

5

Çok saçma, ama yine de birisinin benim gibi duruma düşmesi durumunda deneyimlerimi paylaşmak istiyorum.

Lütfen değiştirip değiştirmediğinizi kontrol edin: compileSdkVersion-> implementationSdkVersionyanlışlıkla


"Yanlışlıkla" Biz konum anlamına DEĞİL implementationSdk .. sağa .. compileSdk onu değiştirmek gerekiyordu? CompileSdkVersion olarak kalması mı gerekiyor? --- Bu yorumu
okuyanların

Bu bir çözüm değil! derlemeyi uygulama için değiştirmek yalnızca bağımlılıklar için geçerlidir .
Jorgesys

2

Senin kodun

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')

Değiştir

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')

2

Burada belirtildiği gibi, https://stackoverflow.com/a/50941562/2186220 , 'uygulama' kullanırken gradle eklenti sürüm 3 veya üstünü kullanın.

Ayrıca, içindeki google()depoyu kullanın buildscript.

buildscript {
    repositories {
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
    }
}

Bu değişiklikler sorunu çözmelidir.


2

Şu Verilerinizi değiştirin implementationile classpath. Bu çalışmalı.


Merhaba Nander, cevabımın kabul edilene benzediğini sanmıyorum. Ayrıca, benim için çalışmadım, bu yüzden işe yarayan ve diğer geliştiricilere de yardımcı olabilecek şeyleri yayınladım.
Edward Mpanza

Merhaba Edward, üzgünüm, yanlış anladım. Cevabınız gerçekten farklı.
Nander Speerstra

1

Ben taşındı implementationroot seviyesinde build.gradle gelen modül düzeyi build.gradle için. Sorunu çözer.


0

Uygulama tanımlanmamışsa, yanlış bir dosyaya yazıyorsunuzdur. Unity 2019+ üzerinde doğru dosya main template grandlediğerlerinden bazıları değil.

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.