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.


106

Tôi chưa quen với Phát triển ứng dụng Android. Khi tôi cố gắng tạo một dự án mới, Android Project ... thông báo sau xuất hiện ..

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. Thông tin: Gradle task [: app: createDebugSources,: app: createDebugAndroidTestSources,: app: mockableAndroidJar]

Đây là ảnh chụp màn hình dự án của tôi, nhấp vào đây để xem ảnh chụp màn hình của lỗi tôi gặp phải

tôi cũng đã thử thêm mã này vào phần phụ thuộc của mình .. androidTestCompile 'com.android.support:support-annotations:23.3.0', điều này không thành công. Tôi cũng đã thử 27.1.1 và 26.1.0 .. cũng không thành công.


Kiểm tra câu hỏi này: stackoverflow.com/q/43817004/9611523 . Hy vọng nó sẽ hữu ích.

1
Cập nhật Android Studio (cũng như trình giả lập và một số nội dung khác sau đó) đã giải quyết được vấn đề đó cho tôi.

Sự cố là do thang điểm chú thích không xuất hiện theo mặc định trong quá trình tạo dự án mới của Android Studio. Có thể điều này sẽ giúp bạn: readyandroid.wordpress.com/…
Android sẵn sàng vào

Câu trả lời:


182

Dựa trên ảnh chụp màn hình của bạn, tôi đã tìm thấy hai giải pháp hoạt động:

Giải pháp đầu tiên : thêm vào các phụ thuộc của mô-đun gradle của bạn dòng này

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

và đồng bộ hóa dự án của bạn

Lưu ý: nếu bạn đang sử dụng Android studio 3+, hãy thay đổi compilethànhimplementation

Giải pháp thứ hai : Định cấu hình các thuộc tính cho toàn dự án được tìm thấy trong tài liệu https://developer.android.com/studio/build/gradle-tips.html#configure-project-wide-properties

trong dự án gradle thêm dòng này:

// 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"
}

Sau đó, để truy cập phần này, compileSdkVersiondòng thay đổi thành

compileSdkVersion rootProject.ext.compileSdkVersion

và tại dependenciesphần thay đổi thư viện đã nhập thành như thế này:

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

và đồng bộ hóa dự án của bạn

Lưu ý: nếu bạn đang sử dụng Android studio 3+, hãy thay đổi compilethànhimplementation

Để biết sự khác biệt giữa compileimplementationhãy xem điều này Sự khác biệt giữa triển khai và biên dịch trong gradle


4
Tôi sẽ đề xuất sử dụng 'thực hiện' thay vì biên dịch
SanVed

60

Thêm dòng bên dưới vào tệp app.gradle của bạn trước khi khối Depencencies.

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

Ngoài ra còn có ảnh chụp màn hình bên dưới để hiểu rõ hơn.

Cấu hình. Tất cả khối

  1. khối configurations.all sẽ chỉ hữu ích nếu bạn muốn sdk mục tiêu của mình là 26. Nếu bạn có thể thay đổi nó thành 27, lỗi sẽ biến mất mà không cần thêm khối cấu hình trong tệp app.gradle.

  2. Có một cách nữa nếu bạn xóa tất cả triển khai thử nghiệm khỏi tệp app.gradle, nó sẽ giải quyết được lỗi và trong cách này, bạn không cần thêm khối cấu hình cũng như không cần thay đổi phiên bản targetdk.

Hy vọng rằng sẽ giúp.


Cảm ơn, Tiết kiệm thời gian của tôi
Manikandan K

1
@ManikandanK rất vui được trợ giúp!
Harsh Jain

Khen ngợi bạn vì đã hướng dẫn đầy đủ! (Rất nhiều câu trả lời về loại chủ đề này giống như "Thêm cái này:" force 'com.android.support:support-annotations:26.1.0' "với ít / không có ngữ cảnh! (Thật đáng buồn, tuy nhiên, tôi vẫn nhận được câu trả lời tương tự lỗi xây dựng, trong trường hợp của tôi "Không thể tìm thấy com.android.support:support-annotations:27.0.0. Yêu cầu bởi: trainingiq: bugnag-react-native: unsecified> com.bugsnag: bugnag-android: 4.3.1"
Dronz

35

Nếu bạn sử dụng phiên bản 26 thì phiên bản bên trong phụ thuộc phải là 1.0.13.0.1 tức là, như sau

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

Nếu bạn sử dụng phiên bản 27 thì phiên bản bên trong phụ thuộc phải là 1.0.23.0.2 tức là, như sau

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

2
Chúa phù hộ bạn, có thể android hỗ trợ các thư viện phiên bản thối rữa trong địa ngục!
Muhammad Naderi

Vì vậy, thuật sĩ Android studio tạo một dự án từ đầu CÓ lỗi? ¬¬
Sebastian Breit

Thế còn 28 ?
alizulfuqar

27

Nếu bạn sử dụng Android Studio 3.1. + Trở lên

chỉ cần đặt điều này trong bản trình bày gradle của bạn:

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

Nhìn chung như thế này:

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

Cảm ơn bạn thân. Rất nhiều tình yêu
amilab

23

Điều này là do xung đột giữa các phiên bản, để giải quyết nó, chỉ cần buộc cập nhật phiên bản hỗ trợ-chú thích của bạn, thêm dòng này trên mô-đun của bạn: app gradle

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

Hy vọng điều này giải quyết được vấn đề của bạn;)

Biên tập

Hầu như đã quên, bạn có thể khai báo một thuộc tính bổ sung ( https://docs.gradle.org/current/userguide/writing_build_scripts.html#sec:extra_properties ) cho phiên bản, đi tới tệp gradle của dự án (hoặc hàng đầu của bạn) và tuyên bố hỗ trợ của bạn hoặc chỉ cho ví dụ này, phiên bản chú thích var

ext.annotation_version = "27.1.1"

Sau đó, trong gradle mô-đun của bạn thay thế nó bằng:

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

Điều này rất giống với giải pháp @emadabel, là một giải pháp thay thế tốt để thực hiện nó, nhưng không có khối hoặc rootprojecttiền tố.


1
Cảm ơn desgraci giải pháp trên đã giúp tôi
BharathRao

sau khi thêm dòng này, bây giờ tôi gặp lỗi "Lỗi: Thực thi không thành công cho tác vụ ': app: processDebugManifest'.> Không hợp nhất tệp kê khai với nhiều lỗi, hãy xem nhật ký" vui lòng giúp tôi cách giải quyết
Basant

@Basant tôi sẽ cần phải xem đó là vấn đề, vì nó là một vấn đề thực hiện gradle của bạn, nó sẽ là tốt hơn để mở một câu hỏi cho điều này
desgraci

Xin lỗi vì trả lời trễ @desgraci, tôi đã giải quyết vấn đề này bằng cách nâng cấp IDE
Basant

@Basant rất vui khi nghe điều đó!
desgraci

9

Thêm điều này vào build.gradle (Ứng dụng mô-đun) đã làm việc cho tôi:
compile 'com.android.support:support-annotations:27.1.1'


7

Đừng lo lắng Nó rất đơn giản:

Đi tới cấu trúc Thư mục "Dự án" và trong đó đi tới "Tập lệnh Gradle" và bên trong nó là "build.gradle (Module: app)" và nhấp đúp vào nó.

Bây giờ - Cuộn xuống chương trình và chuyển đến phần phụ thuộc: Như bên dưới


phụ thuộc {

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'

}


Bây giờ trong phần này Xóa hai dòng mã cuối cùng và xây dựng lại ứng dụng và bây giờ nó sẽ hoạt động

Các phần phụ thuộc phải là:


phụ thuộc {

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'

}


XÂY DỰNG lại ỨNG DỤNG VÀ NÓ HOẠT ĐỘNG !!


Bạn đã không giải thích những gì bạn đã xóa / thêm. Điều gì xảy ra nếu các thư viện kiểm tra ở đây là cần thiết?
TheRealChx101

3

Đi tới build.gradle (Ứng dụng mô-đun) trong dự án của bạn:

nhập mô tả hình ảnh ở đây

Thực hiện theo hình ảnh và thay đổi phiên bản đó:

compileSdkVersion: 27
targetSdkVersion: 27

và nếu android studio phiên bản 2: Thay đổi dòng bằng dòng này:

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

khác Thay đổi dòng với dòng này:

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

và hy vọng, bạn sẽ giải quyết được lỗi của mình.


2

Thêm cái này vào tệp gradle của bạn.

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

1

Một cách đơn giản khác để giải quyết vấn đề này là chỉnh sửa build.gradle(ứng dụng) của bạn :

  1. Chuyển đến androidthẻ và thay đổi compileSdkVersion 26thànhcompileSdkVersion 27
  2. Chuyển đến defaultConfigthẻ và thay đổi targetSdkVersion 26thànhtargetSdkVersion 27
  3. Phải dependenciesgắn thẻ và thay đổi implementation 'com.android.support:appcompat-v7:26.1.0'thànhimplementation 'com.android.support:appcompat-v7:27.1.1'

1

Tôi gặp vấn đề tương tự, trong build.gradle (Module: app), hãy thêm dòng mã sau vào bên trong các phần phụ thuộc:

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

Nó làm việc cho tôi một cách hoàn hảo


1

Cập nhật quan trọng

Chuyển đến mức dự án build.gradle, xác định các biến toàn cục

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

Chuyển đến build.gradle cấp ứng dụng và sử dụng các biến toàn cục

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

một số thư viện 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...
}

Giải pháp là làm cho các phiên bản của bạn giống như trong tất cả các mô-đun. Để bạn không xảy ra xung đột.

Mẹo quan trọng

Tôi cảm thấy khi tôi đã cập nhật các phiên bản của mọi thứ - phân loại, sdks, thư viện, v.v. thì tôi ít gặp lỗi hơn. Vì các nhà phát triển đang nỗ lực để giúp dễ dàng phát triển trên Android Studio.

Luôn luôn có mới nhất nhưng phiên bản ổn định phiên bản ổn định là alpha, betarc, bỏ qua chúng trong việc phát triển.

Tôi đã cập nhật tất cả bên dưới trong các dự án của mình và tôi không gặp phải những lỗi này nữa.

Chúc bạn viết mã vui vẻ! :)


0

Nếu việc thay đổi phiên bản sdk mục tiêu không giúp ích được gì thì nếu bạn có bất kỳ sự phụ thuộc nào với phiên bản 3.0.2thì hãy thay đổi nó thành 3.0.1.

ví dụ như thay đổi

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

đến

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

0

Một giải pháp tốt hơn được giải thích trong phần giải thích chính thức . Tôi để lại câu trả lời mà tôi đã đưa ra trước đó dưới hàng ngang.

Theo giải pháp có:

Sử dụng thẻ bên ngoài và ghi lại đoạn mã sau vào tệp build.gradle cấp cao nhất . Bạn sẽ thay đổi phiên bản thành một biến thay vì một số phiên bản tĩnh.

ext {
    compileSdkVersion = 26
    supportLibVersion = "27.1.1"
}

Thay đổi số phiên bản tĩnh trong tệp build.gradle cấp ứng dụng của bạn , tệp có (Module: app)gần.

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
}

Đồng bộ hóa dự án của bạn và bạn sẽ không gặp lỗi.


Bạn không cần thêm bất cứ thứ gì vào tập lệnh Gradle. Cài đặt các SDK cần thiết và vấn đề sẽ được giải quyết.

Trong trường hợp của bạn, hãy cài đặt các thư viện bên dưới từ Tùy chọn> SDK Android hoặc Công cụ> Android> Trình quản lý SDK

nhập mô tả hình ảnh ở đây


0

Thêm dòng này dưới phần phụ thuộc trong tệp gradle của bạn

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