निर्भरता के साथ संघर्ष 'com.android.support:support-annotations'। एप्लिकेशन (23.1.0) और परीक्षण एप्लिकेशन (23.0.1) के लिए हल किए गए संस्करण अलग-अलग हैं


119

निर्माण करते समय मुझे निम्नलिखित त्रुटि मिलती है:

Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (23.1.0) and test app (23.0.1) differ.

ये मेरी श्रेणीबद्ध निर्भरताएँ हैं

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:support-v4:23.1.0'
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.android.support:design:23.1.0'
    compile 'com.android.support:cardview-v7:23.1.0'
    compile 'com.android.support:recyclerview-v7:23.1.0'
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'com.squareup.okhttp:okhttp:2.4.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.jakewharton:butterknife:7.0.1'
    compile 'com.squareup:otto:1.3.8'
    compile 'com.snappydb:snappydb-lib:0.5.2'
    compile 'com.esotericsoftware.kryo:kryo:2.24.0'
    compile 'com.google.dagger:dagger:2.0.1'
    apt 'com.google.dagger:dagger-compiler:2.0.1'
    compile 'javax.annotation:javax.annotation-api:1.2'
    compile 'io.reactivex:rxandroid:1.0.1'
    compile 'io.reactivex:rxjava:1.0.14'
    compile 'com.google.android.gms:play-services-location:8.1.0'
    compile 'com.google.android.gms:play-services-gcm:8.1.0'
    compile 'org.apache.commons:commons-lang3:3.4'
    testCompile 'junit:junit:4.12'
    testCompile 'org.hamcrest:hamcrest-library:1.3'
    testCompile 'org.mockito:mockito-core:1.10.19'
    androidTestCompile 'com.android.support.test:runner:0.4'
    androidTestCompile 'com.android.support.test:rules:0.4'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
    androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.1'
    androidTestCompile 'com.android.support.test.espresso:espresso-web:2.2.1'
    debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3.1'
    releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1'
}

मैं इसे कैसे ठीक करूं?


मैं आपको बता सकता हूं कि 23.1.0 निर्भरता एपकम्पेट परिवाद से आती है, क्योंकि इसमें एनोटेशन लिब भी शामिल है। 23.0.1 मुझे नहीं पता
टिम

यह या तो अगर मैं करने के लिए 23.0.1 appcompat वापस स्विच काम नहीं करता है
बार्क

मैंने सिर्फ 23.0.0 को 23.0.1 से बदल दिया, निर्भरता में हर जगह, मेरे लिए काम किया।
शहजाद अफरीदी

अपने संस्करण की त्रुटि से संबंधित एनोटेशन निर्भरता जोड़ें। Readyandroid.wordpress.com/…
तैयार Android

या यह आपकी मदद के लिए
तैयार

जवाबों:


208

आप अपने परीक्षण में एनोटेशन लाइब्रेरी का उपयोग करने के लिए बाध्य कर सकते हैं:

androidTestCompile 'com.android.support:support-annotations:23.1.0'

कुछ इस तरह:

  // Force usage of support annotations in the test app, since it is internally used by the runner module.
  androidTestCompile 'com.android.support:support-annotations:23.1.0'
  androidTestCompile 'com.android.support.test:runner:0.4.1'
  androidTestCompile 'com.android.support.test:rules:0.4.1'
  androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
  androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.1'
  androidTestCompile 'com.android.support.test.espresso:espresso-web:2.2.1'

एक अन्य उपाय शीर्ष स्तर की फ़ाइल में इसका उपयोग करना है:

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

8
AndroidTestCompile 'com.android.support:support-annotations:23.1.0': यह लाइन समाधान था
बार्क

4
Configurations.all सेटिंग का उपयोग मेरे लिए काम करता है, लेकिन प्रोजेक्ट स्तर फ़ाइल में नहीं, जो कि मैंने शुरू में ऊपर की प्रतिक्रिया से "शीर्ष स्तर फ़ाइल" के रूप में व्याख्या की है। यह मॉड्यूल स्तर build.gradle फ़ाइल में था
ओएआरएम

क्या यह संघर्ष मूल रूप से एस्प्रेसो के कारण हुआ है?
इगोरगानापॉल्स्की

resolutionStrategy.force 'com.android.support:support-annotations:23.4.0' मेरे लिए मदद नहीं करता है .. समस्या DatePicker, DrawerActions, RecyclerView, आदि के लिए EspressoContribution है .. ('com.android.support.test.espresso) : एस्प्रेसो-कॉनरीब: 2.2.2 ') {बहिष्कृत मॉड्यूल:' समर्थन-एनोटेशन 'बहिष्कृत मॉड्यूल:' सपोर्ट-वी 4 '}
इवोक

3
बस एक महत्वपूर्ण बात यह है, यह स्पष्ट है कि हम configurations.all {resolutionStrategy.force 'com.android.support:support-annotations:23.1.0'} अंदर जोड़ने की जरूरत बनाने के लिए build.gradleकी मॉड्यूल (एप्लिकेशन) इस मुद्दे को ठीक करने के लिए।
AADProgramming

69

प्रोजेक्ट पुनर्निर्माण ने मेरी समस्या हल कर दी।

टूलबार में एंड्रॉइड स्टूडियो में .. बिल्ड> पुनर्निर्माण प्रोजेक्ट।


25

स्रोत: कोडपाथ - एस्प्रेसो के साथ यूआई परीक्षण

  1. अंत में, हमें एस्प्रेसो निर्भरता में खींचने की जरूरत है और हमारे ऐप build.gradle में परीक्षण धावक सेट करें:
// build.gradle
...
android {
    ...
    defaultConfig {
        ...
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
}

dependencies {
    ...
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2') {
        // Necessary if your app targets Marshmallow (since Espresso
        // hasn't moved to Marshmallow yet)
        exclude group: 'com.android.support', module: 'support-annotations'
    }
    androidTestCompile('com.android.support.test:runner:0.5') {
        // Necessary if your app targets Marshmallow (since the test runner
        // hasn't moved to Marshmallow yet)
        exclude group: 'com.android.support', module: 'support-annotations'
    }
}

मैंने अपनी ग्रेड फ़ाइल में जोड़ दिया है और चेतावनी गायब हो गई है।

इसके अलावा, यदि आपको किसी अन्य निर्भरता को परस्पर विरोधी के रूप में सूचीबद्ध किया गया है, जैसे कि समर्थन-एनोटेशन, तो इसे AndroidTestCompile निर्भरता से भी बाहर करने का प्रयास करें।


1
मेरे लिए अलग-अलग androidtestcompile कार्यों को छोड़कर
नन्था कुमार

12

आप उपयोग करने का प्रयास कर सकते हैं

  androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})

के बजाय

androidTestCompile 'com.android.support.test:runner:0.4.1'

androidTestCompile 'com.android.support.test:rules:0.4.1'

androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.2.1'

6

मुझे यह त्रुटि मिल रही थी

त्रुटि: कार्य के लिए निष्पादन विफल रहा ': ऐप: preDebugAndroidTestBuild'। निर्भरता के साथ संघर्ष 'com.android.support:support-annotations' परियोजना में ': ऐप'। ऐप (26.1.0) और परीक्षण ऐप (27.1.1) के लिए हल किए गए संस्करण अलग-अलग हैं। देखें https://d.android.com/r/tools/test-apk-dependency-conflicts.html जानकारी के लिए।

ग्रैडल लिपियों के तहत मैं अपनी बिल्ड.ग्रेडल फ़ाइल में निर्भरता का पालन कर रहा था

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:support-v4:26.1.0'
implementation 'com.android.support:support-vector-drawable:26.1.0'
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'
}

इसलिए, मैंने निम्नलिखित निर्भरताओं पर टिप्पणी करके इसे हल किया

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'

इसलिए मेरी निर्भरताएं इस तरह दिखती हैं

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:support-v4:26.1.0'
implementation 'com.android.support:support-vector-drawable:26.1.0'
//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'
}

आशा करता हूँ की ये काम करेगा!


1
तो आपने परीक्षण पुस्तकालयों को हटा दिया? यदि आपको उन पुस्तकालयों की आवश्यकता है तो यह बहुत उपयोगी नहीं है।
पैंट

4

मुझे आज वही त्रुटि मिल रही थी:

त्रुटि: कार्य के लिए निष्पादन विफल रहा ': ऐप: preDebugAndroidTestBuild'।> निर्भरता के साथ संघर्ष 'com.android.support:support-annotations' प्रोजेक्ट में: 'ऐप'। एप्लिकेशन (26.1.0) और परीक्षण एप्लिकेशन (27.1.1) के लिए हल किए गए संस्करण अलग-अलग हैं।

मैंने क्या किया:

  • मैंने 27.1.1इसके बजाय अपनी सभी निर्भरता को अद्यतन किया26.1.0
  • इसके अलावा, मेरे अद्यतन compileSdkVersion 27और targetSdkVersion 27जो 26पहले थे

और com.android.support:support-annotationsत्रुटि हो गई थी!

रेफरी के लिए:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.android.support:design:27.1.1'
    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'
}

1

मेरे मामले में, मैंने ऐप स्तर build.gradle की निर्भरता में कोड नीचे जोड़ा

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})

उसके बाद, मैं परियोजना को साफ करता हूं और पुनर्निर्माण करता हूं। मेरी समस्या हल हो गई।


0

अपने आवेदन स्तर का निर्माण करें। फ़ाइल का निर्माण करें:

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

सेवा

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

0

इसे इस्तेमाल करे :

apply plugin: 'com.android.application'

android {
compileSdkVersion 27
defaultConfig {
    applicationId "com.example.yourpackagename"
    minSdkVersion 15
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
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'
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.