Xung đột với phụ thuộc 'com.android.support:support-annotations'. Các phiên bản đã giải quyết cho ứng dụng (23.1.0) và ứng dụng thử nghiệm (23.0.1) khác nhau


119

Khi xây dựng, tôi gặp lỗi sau:

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

Đây là những phụ thuộc gradle của tôi

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'
}

Làm thế nào tôi có thể sửa lỗi này?


Tôi có thể nói với bạn rằng phần phụ thuộc 23.1.0 đến từ appcompat lib, vì nó bao gồm các chú thích lib. Các 23.0.1 Tôi không biết
Tim

Nó không làm việc, hoặc nếu tôi chuyển appcompat trở lại 23.0.1
barq

Tôi vừa thay thế 23.1.0 bằng 23.0.1, ở mọi nơi trong vùng phụ thuộc, phù hợp với tôi.
Shahzad Afridi

Thêm phụ thuộc chú thích liên quan đến lỗi phiên bản của bạn. readyandroid.wordpress.com/…
Sẵn sàng Android

Hoặc điều này có thể giúp bạn readyandroid.wordpress.com/…
Android sẵn sàng vào

Câu trả lời:


208

Bạn có thể buộc thư viện chú thích trong thử nghiệm của mình bằng cách sử dụng:

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

Một cái gì đó như thế này:

  // 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'

Một giải pháp khác là sử dụng điều này trong tệp cấp cao nhất:

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

8
Dòng này là giải pháp: androidTestCompile 'com.android.support:support-annotations:23.1.0'
barq

4
Việc sử dụng cài đặt configurations.all phù hợp với tôi, nhưng không phù hợp với tệp cấp dự án, đó là những gì tôi hiểu ban đầu là "tệp cấp cao nhất" từ phản hồi ở trên. Nó nằm trong tệp build.gradle ở cấp độ mô-đun
OYRM

Xung đột này có phải do Espresso ban đầu không?
IgorGanapolsky

ResolutionStrategy.force 'com.android.support:support-annotations:23.4.0' không giúp ích gì cho tôi .. vấn đề là EspressoContribution cho DatePicker, DrawerActions, RecyclerView, v.v. ('com.android.support.test.espresso : espresso-Contrib: 2.2.2 ') {mô-đun loại trừ:' support-annotations 'loại trừ mô-đun:' support-v4 '}
Ewoks

3
Chỉ cần một điểm quan trọng, để làm cho nó rõ ràng rằng chúng ta cần add configurations.all {resolutionStrategy.force 'com.android.support:support-annotations:23.1.0'} bên trong build.gradlecủa mô-đun (ứng dụng) để khắc phục vấn đề.
AADProgramming

69

Xây dựng lại dự án đã giải quyết vấn đề của tôi.

Trong Android studio trên thanh công cụ .. Build> Rebuild Project.


25

Nguồn: CodePath - Thử nghiệm giao diện người dùng với Espresso

  1. Cuối cùng, chúng ta cần kéo các phụ thuộc Espresso vào và thiết lập trình chạy thử nghiệm trong ứng dụng 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'
    }
}

Tôi đã thêm nó vào tệp gradle của mình và cảnh báo đã biến mất.

Ngoài ra, nếu bạn nhận được bất kỳ phụ thuộc nào khác được liệt kê là xung đột, chẳng hạn như hỗ trợ-chú thích, hãy thử loại trừ nó khỏi các phụ thuộc androidTestCompile.


1
trừ androidtestcompile cá nhân làm việc cho tôi
Nantha kumar

12

bạn có thể thử sử dụng

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

thay vì

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

Tôi đã nhận được lỗi này

Lỗi: Không thực thi được tác vụ ': app: preDebugAndroidTestBuild'. Xung đột với phụ thuộc 'com.android.support:support-annotations' trong dự án ': app'. Các phiên bản đã giải quyết cho ứng dụng (26.1.0) và ứng dụng thử nghiệm (27.1.1) khác nhau. Xem https://d.android.com/r/tools/test-apk-dependency-conflicts.html để biết chi tiết.

Tôi đã gặp phải các phần phụ thuộc sau trong tệp build.gradle của mình trong Gradle Scripts

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'
}

Vì vậy, tôi đã giải quyết nó bằng cách nhận xét các phụ thuộc sau

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'

Vì vậy, phần phụ thuộc của tôi trông như thế này

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'
}

Hy vọng nó giúp!


1
Vì vậy, bạn đã loại bỏ các thư viện thử nghiệm? Điều này không hữu ích lắm nếu bạn cần những thư viện đó.
Quần

4

Hôm nay tôi gặp lỗi tương tự:

Lỗi: Không thực hiện được tác vụ ': app: preDebugAndroidTestBuild'.> Xung đột với phần phụ thuộc 'com.android.support:support-annotations' trong dự án ': app'. Các phiên bản đã giải quyết cho ứng dụng (26.1.0) và ứng dụng thử nghiệm (27.1.1) khác nhau.

Tôi đã làm gì:

  • Tôi chỉ cần cập nhật tất cả các phụ thuộc của mình 27.1.1thay vì26.1.0
  • Ngoài ra, đã cập nhật compileSdkVersion 27targetSdkVersion 27đó là 26trước đó

com.android.support:support-annotationslỗi đã biến mất!

Đối với Tham chiếu:

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

Trong trường hợp của tôi, tôi đã thêm mã bên dưới trong các phần phụ thuộc của build.gradle cấp ứng dụng

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

Sau đó, tôi dọn dẹp dự án và xây dựng lại.


0

Thay đổi tệp build.gradle cấp ứng dụng của bạn:

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

đến

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

0

Thử cái này :

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'
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.