': App' projesinde bağımlılık 'com.android.support:support-annotations' ile çakışma. Uygulama (26.1.0) ve test uygulaması (27.1.1) için çözümlenen sürümler farklıdır.


106

Android Uygulama Geliştirme konusunda yeniyim. Yeni bir proje, Android Projesi oluşturmaya çalıştığımda ... aşağıdaki mesaj belirdi ..

Hata: ': app: preDebugAndroidTestBuild' görevi için yürütme başarısız oldu.

': App' projesinde bağımlılık 'com.android.support:support-annotations' ile çakışma. Uygulama (26.1.0) ve test uygulaması (27.1.1) için çözümlenen sürümler farklıdır. Ayrıntılar için https://d.android.com/r/tools/test-apk-dependency-conflicts.html adresine bakın. Bilgi: Gradle görevleri [: app: generateDebugSources,: app: generateDebugAndroidTestSources,: app: mockableAndroidJar]

Bu, projemin ekran görüntüsüdür, aldığım hatanın ekran görüntüsünü görmek için burayı tıklayın

ayrıca bu kodu bağımlılığıma eklemeyi denedim .. androidTestCompile 'com.android.support:support-annotations:23.3.0' bu işe yaramadı. Ben de 27.1.1 ve 26.1.0'ı denedim .. bu da işe yaramadı.


Şu soruyu kontrol edin: stackoverflow.com/q/43817004/9611523 . Umarım yardımcı olur.

1
Android Studio'yu güncellemek (öykünücü ve ondan sonra diğer bazı şeyler) benim için bu sorunu çözdü.

Sorun, Android Studio yeni proje oluşturmada varsayılan olarak gelmeyen ek açıklama derecelendirmesinden kaynaklanıyor. Bu size yardımcı olabilir: readyandroid.wordpress.com/…
Hazır Android

Yanıtlar:


182

Ekran görüntünüze dayanarak iki çalışma çözümü buldum:

İlk çözüm : Bu satıra gradle modülünüzün bağımlılıklarını ekleyin

compile 'com.android.support:support-annotations:27.1.1'

ve projenizi senkronize edin

Not: Android studio 3+ kullanıyorsanız şu şekilde değiştirin compile:implementation

İkinci çözüm : https://developer.android.com/studio/build/gradle-tips.html#configure-project-wide-properties belgelerinde bulunan proje genelinde özellikleri yapılandırın

proje notunda bu satırı ekleyin:

// This block encapsulates custom properties and makes them available to all
// modules in the project.
ext {
    // The following are only a few examples of the types of properties you can define.
    compileSdkVersion = 26
    // You can also use this to specify versions for dependencies. Having consistent
    // versions between modules can avoid behavior conflicts.
    supportLibVersion = "27.1.1"
}

Ardından bu bölüme erişmek için compileSdkVersionsatır değiştir

compileSdkVersion rootProject.ext.compileSdkVersion

ve dependenciesbölümde, içe aktarılan kitaplığı şu şekilde değiştirin:

compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"

ve projenizi senkronize edin

Not: Android studio 3+ kullanıyorsanız şu şekilde değiştirin compile:implementation

Arasındaki fark için compileve implementationbu bakmak gradle içinde uygulanması ve derleme arasındaki fark nedir


4
Derlemek yerine 'uygulama' kullanmanızı öneririm
SanVed

60

Depencencies blokundan önce app.gradle dosyanıza aşağıdaki satırı ekleyin.

configurations.all {
    resolutionStrategy {
        force 'com.android.support:support-annotations:26.1.0'
    }
}

Daha iyi bir anlayış için aşağıda ekran görüntüsü de var.

Yapılandırmalar. Tüm blok

  1. configuration.all bloğu yalnızca hedef sdk'nizin 26 olmasını istiyorsanız yardımcı olacaktır. Eğer bunu 27 olarak değiştirirseniz, app.gradle dosyasına yapılandırma bloğu eklemeden hata giderilecektir.

  2. Tüm test uygulamasını app.gradle dosyasından kaldırırsanız, hatayı çözmenin bir yolu daha vardır ve bu durumda konfigürasyon bloğunu eklemenize veya targetdk sürümünü değiştirmenize gerek yoktur.

Umarım yardımcı olur.


Teşekkürler, zamanımı kurtar
Manikandan K

1
@ManikandanK yardımcı olmaktan mutluluk duyar!
Harsh Jain

Eksiksiz talimatlar verdiğiniz için övgü! (Bu tür bir konudaki pek çok yanıt aynı "Bunu ekleyin:" force 'com.android.support:support-annotations:26.1.0' "gibi çok az içerikle / bağlam yok! (Ne yazık ki, yine de aynı şeyi alıyorum derleme hatası, benim durumumda "com.android.support:support-annotations:27.0.0 bulunamadı. Gereksinim duyan: trainingiq: bugsnag-react-native: unspecified> com.bugsnag: bugsnag-android: 4.3.1"
Dronz

35

Sürüm 26'yı kullanırsanız, bağımlılıklar sürümünün 1.0.1 ve 3.0.1 olması gerekir , yani aşağıdaki gibi

  androidTestImplementation 'com.android.support.test:runner:1.0.1'
  androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

Sürüm 27'yi kullanıyorsanız, iç bağımlılık sürümü 1.0.2 ve 3.0.2 olmalıdır , yani aşağıdaki gibi

  androidTestImplementation 'com.android.support.test:runner:1.0.2'
  androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

2
Tanrı sizi korusun, cehennemde çürüyen android kütüphaneleri sürümleme desteği olabilir!
Muhammad Naderi

Yani Android stüdyo sihirbazı hatalarla sıfırdan bir proje mi oluşturuyor? ¬¬
Sebastian Breit

Ya 28 ?
alizulfuqar

27

Android Studio 3.1. + Veya üstünü kullanıyorsanız

sadece bunu kademeli depedanslarınıza koyun:

implementation 'com.android.support:support-annotations:27.1.1'

Genel olarak şu şekilde:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

    implementation 'com.android.support:support-annotations:27.1.1'
}

Teşekkürler dostum. Çok sevgi
amilab

23

Bunun nedeni sürüm çatışmasıdır, sorunu çözmek için destek-ek açıklamalar sürümünüzün bir güncellemesini zorlayın ve modülünüze şu satırı ekleyin: uygulama gradle

implementation ('com.android.support:support-annotations:27.1.1')

Umarım bu, sorununuzu çözer;)

Düzenle

Neredeyse unutulmuş haldeyken, sürüm için tek bir ekstra özellik ( https://docs.gradle.org/current/userguide/writing_build_scripts.html#sec:extra_properties ) beyan edebilir , projenize (veya en üstteki) gradle dosyanıza gidebilir ve desteğinizi beyan edin veya sadece bu örnek için, ek açıklama sürümü var

ext.annotation_version = "27.1.1"

Daha sonra modül kademenizde bunu şununla değiştirin:

implementation ("com.android.support:support-annotations:$annotation_version")

Bu, bunu yapmak için iyi bir alternatif olan, ancak blok veya rootprojectönek olmadan @emadabel çözümüne çok benzer .


1
Teşekkürler desgraci yukarıdaki çözüm bana yardımcı oldu
BharathRao

Bu satırı ekledikten sonra şimdi "Hata: Yürütme görev için başarısız oldu ': app: processDebugManifest" hatası alıyorum.> Manifest birleştirme birden çok hatayla başarısız oldu, günlüklere bakın "lütfen bana nasıl çözebilirim
Basant

@Basant Sorunun hangisi olduğunu görmem gerek, çünkü bu, gradle'ınızı yürütürken bir sorun olduğu için, bunun için bir soru açmak daha iyi olur
desgraci

Geç yanıt için özür dilerim @desgraci, IDE'yi yükselterek bu sorunu çözdüm
Basant

@Bunu duyduğuma sevindim!
desgraci

9

Bunu build.gradle'a (Modül uygulaması) eklemek benim için çalıştı:
'com.android.support:support-annotations:27.1.1' derleyin


7

Merak etmeyin Çok basit:

"Proje" Dizin yapısına gidin ve bunun içinde "Gradle Scripts" e gidin ve bunun içinde "build.gradle (Module: app)" gidin ve çift tıklayın.

Şimdi - Programı aşağı kaydırın ve burada bağımlılıklar bölümüne gidin: Aşağıdaki gibi


bağımlılıklar {

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

}


Şimdi bu son iki kod satırını silin ve uygulamayı yeniden oluşturun ve şimdi çalışacak

Bağımlılıklar şöyle olmalıdır:


bağımlılıklar {

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'

}


APP YENİDEN YAPILDI VE ÇALIŞIYOR !!


Ne sildiğini / eklediğini açıklamadın. Ya burada test kitaplıklarına ihtiyaç duyulursa?
TheRealChx101

3

Projenizdeki build.gradle'a (Modül Uygulaması) gidin:

görüntü açıklamasını buraya girin

Resmi takip edin ve bu sürümü değiştirin:

compileSdkVersion: 27
targetSdkVersion: 27

ve android stüdyo sürümü 2 ise: Bu satırla satırı değiştirin:

compile 'com.android.support:appcompat-v7:27.1.1'

yoksa Bu satırla satırı değiştirin:

implementation 'com.android.support:appcompat-v7:27.1.1'

ve umarım hatanı çözeceksin.


2

Bunu gradle dosyanıza ekleyin.

implementation 'com.android.support:support-annotations:27.1.1'

1

Bu sorunu çözmenin başka bir basit yolu da build.gradle(uygulamanızı) düzenlemektir :

  1. Gidin androidetiketi ve değişime compileSdkVersion 26karşıcompileSdkVersion 27
  2. Gidin defaultConfigetiketi ve değişime targetSdkVersion 26karşıtargetSdkVersion 27
  3. Got dependenciesetiketi ve değişime implementation 'com.android.support:appcompat-v7:26.1.0'karşıimplementation 'com.android.support:appcompat-v7:27.1.1'

1

Aynı sorunu yaşıyorum, build.gradle'da (Module: app) bağımlılıkların içine aşağıdaki kod satırını ekleyin:

dependencies 
{
   ...
   compile 'com.android.support:support-annotations:27.1.1'
}

Benim için mükemmel çalıştı


1

Önemli Güncelleme

Proje düzeyinde build.gradle'a gidin, genel değişkenleri tanımlayın

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlinVersion = '1.2.61'

    ext.global_minSdkVersion = 16
    ext.global_targetSdkVersion = 28
    ext.global_buildToolsVersion = '28.0.1'
    ext.global_supportLibVersion = '27.1.1'
}

Uygulama düzeyinde build.gradle'a gidin ve genel değişkenleri kullanın

app build.gradle

android {
    compileSdkVersion global_targetSdkVersion
    buildToolsVersion global_buildToolsVersion
    defaultConfig {
        minSdkVersion global_minSdkVersion
        targetSdkVersion global_targetSdkVersion
}
...

dependencies {
    implementation "com.android.support:appcompat-v7:$global_supportLibVersion"
    implementation "com.android.support:recyclerview-v7:$global_supportLibVersion"
    // and so on...
}

bazı kütüphane build.gradle

android {
    compileSdkVersion global_targetSdkVersion
    buildToolsVersion global_buildToolsVersion
    defaultConfig {
        minSdkVersion global_minSdkVersion
        targetSdkVersion global_targetSdkVersion
}
...

dependencies {
    implementation "com.android.support:appcompat-v7:$global_supportLibVersion"
    implementation "com.android.support:recyclerview-v7:$global_supportLibVersion"
    // and so on...
}

Çözüm, sürümlerinizi tüm modüllerdeki gibi yapmaktır. Böylece çatışmalar yaşamazsınız.

Önemli İpuçları

Her şeyin - gradle, sdks, library vb. Sürümlerini güncellediğimde, daha az hatayla karşılaştığımı hissettim. Çünkü geliştiriciler, Android Studio'da geliştirmeyi kolaylaştırmak için çok çalışıyorlar.

Her zaman en son var ama kararlı sürümleri Kararsız sürümleri bulunmaktadır alpha, betave rconları gelişmekte görmezden.

Aşağıdakilerin hepsini projelerimde güncelledim ve artık bu hatalarla karşılaşmıyorum.

Mutlu kodlamalar! :)


0

Hedef sdk sürümünü değiştirmek yardımcı olmuyorsa, sürümle herhangi bir bağımlılığınız varsa, olarak 3.0.2değiştirin 3.0.1.

örneğin değiştir

androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.2'

-e

androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.1'

0

Resmi açıklamada daha iyi bir çözüm açıklanmıştır . Daha önce verdiğim cevabı yatay çizginin altına bıraktım.

Oradaki çözüme göre:

Harici bir etiket kullanın ve aşağıdaki kodu üst düzey build.gradle dosyasına yazın. Sürümü, statik sürüm numarası yerine bir değişken olarak değiştireceksiniz.

ext {
    compileSdkVersion = 26
    supportLibVersion = "27.1.1"
}

Yakınında olan uygulama düzeyinde build.gradle dosyanızdaki statik sürüm numaralarını değiştirin (Module: app).

android {
    compileSdkVersion rootProject.ext.compileSdkVersion // It was 26 for example
    // the below lines will stay
}

// here there are some other stuff maybe

dependencies {
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    // the below lines will stay
}

Projenizi senkronize edin ve hata almazsınız.


Gradle betiklerine herhangi bir şey eklemenize gerek yoktur. Gerekli SDK'ları kurun ve sorun çözülecektir.

Sizin durumunuzda, aşağıdaki kitaplıkları Tercihler> Android SDK veya Araçlar> Android> SDK Yöneticisi'nden yükleyin.

görüntü açıklamasını buraya girin


0

Bu satırı gradle dosyanızdaki bağımlılıkların altına ekleyin

compile 'com.android.support:support-annotations:27.1.1'
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.