Konflik dengan ketergantungan 'com.android.support:support-annotations' in project ': app'. Versi terselesaikan untuk aplikasi (26.1.0) dan aplikasi pengujian (27.1.1) berbeda.

106

Saya baru mengenal Pengembangan Aplikasi Android. Ketika saya mencoba membuat proyek baru, Proyek Android ... pesan berikut muncul ..

Kesalahan: Eksekusi gagal untuk tugas ': app: preDebugAndroidTestBuild'.

Konflik dengan ketergantungan 'com.android.support:support-annotations' in project ': app'. Versi terselesaikan untuk aplikasi (26.1.0) dan aplikasi pengujian (27.1.1) berbeda. Lihat https://d.android.com/r/tools/test-apk-dependency-conflicts.html untuk detailnya. Informasi: Tugas Gradle [: app: generateDebugSources,: app: generateDebugAndroidTestSources,: app: mockableAndroidJar]

Ini adalah tangkapan layar proyek saya, klik di sini untuk melihat tangkapan layar dari kesalahan yang saya dapatkan

saya juga mencoba menambahkan kode ini ke ketergantungan saya .. androidTestCompile 'com.android.support:support-annotations:23.3.0' ini tidak berhasil. Saya juga mencoba 27.1.1 dan 26.1.0 .. itu juga tidak berhasil.

hashTag_bibu
sumber
Periksa pertanyaan ini: stackoverflow.com/q/43817004/9611523 . Semoga bisa membantu.
1
Memperbarui Android Studio (serta emulator dan beberapa hal lain setelah itu) memecahkan masalah itu untuk saya.
Masalah ini terjadi karena anotasi gradle yang tidak muncul secara default dalam pembuatan proyek baru Android Studio. Mungkin ini bisa membantu Anda: readyandroid.wordpress.com/…
Siap Android

Jawaban:

182

Berdasarkan tangkapan layar Anda, saya menemukan dua solusi yang berfungsi:

Solusi pertama : tambahkan dependensi modul gradle Anda baris ini

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

dan sinkronkan proyek Anda

Catatan: jika Anda menggunakan Android studio 3+, ubah compilekeimplementation

Solusi kedua : Konfigurasikan properti seluruh proyek yang terdapat dalam dokumentasi https://developer.android.com/studio/build/gradle-tips.html#configure-project-wide-properties

dalam proyek gradle tambahkan baris ini:

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

Kemudian untuk mengakses bagian ini, ubah compileSdkVersionbaris menjadi

compileSdkVersion rootProject.ext.compileSdkVersion

dan di dependenciesbagian ubah perpustakaan yang diimpor menjadi seperti ini:

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

dan sinkronkan proyek Anda

Catatan: jika Anda menggunakan Android studio 3+, ubah compilekeimplementation

Untuk perbedaan antara compiledan implementationlihat ini Apa perbedaan antara implementasi dan kompilasi di gradle

emadabel
sumber
4
Saya akan menyarankan menggunakan 'implementasi' daripada kompilasi
SanVed
60

Tambahkan baris di bawah ini di file app.gradle Anda sebelum blok depencencies.

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

Ada juga tangkapan layar di bawah ini untuk pemahaman yang lebih baik.

Configurations.all blok

  1. blok configurations.all hanya akan berguna jika Anda ingin target sdk Anda menjadi 26. Jika Anda dapat mengubahnya menjadi 27, kesalahan akan hilang tanpa menambahkan blok konfigurasi di file app.gradle.

  2. Ada satu cara lagi jika Anda akan menghapus semua implementasi pengujian dari file app.gradle, ini akan menyelesaikan kesalahan dan dalam hal ini Anda juga tidak perlu menambahkan blok konfigurasi atau Anda perlu mengubah versi targetdk.

Semoga membantu.

Harsh Jain
sumber
Terima kasih, Hemat waktu saya
Manikandan K
1
@ManikandanK senang membantu!
Harsh Jain
Puji bagi Anda karena telah memberikan instruksi lengkap! (Begitu banyak jawaban tentang subjek semacam ini seperti "Tambahkan ini:" force 'com.android.support:support-annotations:26.1.0' "dengan sedikit / tanpa konteks! (Sayangnya, bagaimanapun saya masih mendapatkan jawaban yang sama membangun kesalahan, dalam kasus saya "Tidak dapat menemukan com.android.support:support-annotations:27.0.0. Diperlukan oleh: trainingiq: bugsnag-react-native: unspecified> com.bugsnag: bugsnag-android: 4.3.1"
Dronz
35

Jika Anda menggunakan versi 26 maka versi dependensi di dalam harus 1.0.1 dan 3.0.1 yaitu, sebagai berikut

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

Jika Anda menggunakan versi 27 maka versi dependensi di dalam harus 1.0.2 dan 3.0.2 yaitu, sebagai berikut

  androidTestImplementation 'com.android.support.test:runner:1.0.2'
  androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
Harish
sumber
2
Tuhan memberkati Anda, semoga android mendukung perpustakaan versi membusuk di neraka!
Muhammad Naderi
Jadi penyihir studio Android membuat proyek dari awal DENGAN kesalahan? ¬¬
Sebastian Breit
Bagaimana dengan 28 ?
alizulfuqar
27

Jika Anda menggunakan Android Studio 3.1. + Atau lebih tinggi

taruh saja ini di depedensi gradle Anda:

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

Secara keseluruhan seperti ini:

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'
}
Uray Febri
sumber
Terima kasih sobat. Banyak cinta
amilab
23

Ini karena konflik versi, untuk mengatasinya, cukup paksa pembaruan versi dukungan-anotasi Anda, tambahkan baris ini pada modul Anda: app gradle

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

Semoga ini menyelesaikan masalah Anda;)

Edit

Hampir lupa, Anda dapat mendeklarasikan satu properti tambahan ( https://docs.gradle.org/current/userguide/writing_build_scripts.html#sec:extra_properties ) untuk versinya, buka file gradle proyek (atau teratas Anda), dan nyatakan dukungan Anda, atau hanya untuk contoh ini, anotasi versi var

ext.annotation_version = "27.1.1"

Kemudian di modul Anda, gantilah dengan:

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

Ini sangat mirip dengan solusi @emadabel, yang merupakan alternatif yang baik untuk melakukannya, tetapi tanpa blokir, atau rootprojectawalan.

desgraci.dll
sumber
1
Terima desgraci solusi di atas membantu saya
BharathRao
setelah menambahkan baris ini sekarang saya mendapatkan kesalahan "Kesalahan: Eksekusi gagal untuk tugas ': app: processDebugManifest'.> Penggabungan manifes gagal dengan beberapa kesalahan, lihat log" tolong bantu saya bagaimana cara mengatasinya
Basant
@Basant Saya perlu melihat masalahnya, karena ini adalah masalah saat menjalankan gradle Anda, akan lebih baik jika Anda mengajukan pertanyaan untuk ini
desgraci
Maaf atas balasan terlambat @desgraci, saya telah mengatasi masalah ini dengan memutakhirkan IDE
Basant
@ Petani senang mendengarnya!
desgraci
9

Menambahkan ini ke build.gradle (Aplikasi modul) berhasil untuk saya:
compile 'com.android.support:support-annotations:27.1.1'

San Askaruly
sumber
7

Jangan khawatir Ini sederhana:

Pergi ke "Project" Directory structure dan di dalamnya masuk ke "Gradle Scripts" dan di dalamnya masuk ke "build.gradle (Module: app)" dan klik dua kali.

Sekarang - Gulir ke bawah program dan masuk ke bagian dependensi: Seperti di bawah ini


ketergantungan {

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'

}


Sekarang dalam hal ini Hapus dua baris kode terakhir dan bangun kembali aplikasi dan sekarang itu akan berfungsi

Dependensi harus:


ketergantungan {

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'

}


MEMBANGUN KEMBALI APLIKASI DAN BERHASIL !!

Manika Agrawal
sumber
Anda tidak menjelaskan apa yang Anda hapus / tambahkan. Bagaimana jika pustaka pengujian diperlukan di sini?
TheRealChx101
3

Buka build.gradle (Aplikasi Modul) di proyek Anda:

masukkan deskripsi gambar di sini

Ikuti gambar dan ubah versi tersebut:

compileSdkVersion: 27
targetSdkVersion: 27

dan jika android studio versi 2: Ubah baris dengan baris ini:

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

else Ubah baris dengan baris ini:

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

dan semoga bug Anda dapat diatasi.

Maizied Hasan Shuvo
sumber
2

Tambahkan ini ke file gradle Anda.

implementation 'com.android.support:support-annotations:27.1.1'
Jeffy
sumber
1

Cara sederhana lain untuk mengatasi masalah ini adalah dengan mengedit build.gradle(aplikasi) Anda:

  1. Pergi ke androidtag dan ubah compileSdkVersion 26kecompileSdkVersion 27
  2. Pergi ke defaultConfigtag dan ubah targetSdkVersion 26ketargetSdkVersion 27
  3. Harus memberi dependenciestag dan mengubah implementation 'com.android.support:appcompat-v7:26.1.0'keimplementation 'com.android.support:appcompat-v7:27.1.1'
Realdinho
sumber
1

Saya memiliki masalah yang sama, di build.gradle (Module: app) tambahkan baris kode berikut di dalam dependensi:

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

Ini bekerja untuk saya dengan sempurna

Mohammed H. Hannoush
sumber
1

Pembaruan Penting

Buka tingkat proyek build.gradle, tentukan variabel global

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

Buka build.gradle level aplikasi, dan gunakan variabel global

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

beberapa build.gradle perpustakaan

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

Solusinya adalah membuat versi Anda sama seperti di semua modul. Agar Anda tidak mengalami konflik.

Tips Penting

Saya merasa ketika saya telah memperbarui versi semuanya- gradle, sdks, libraries, dll. Kemudian saya menghadapi lebih sedikit kesalahan. Karena developer sedang bekerja keras untuk memudahkan pengembangan di Android Studio.

Selalu memiliki versi terbaru tetapi stabil Versi tidak stabil alpha, betadan rc, abaikan dalam pengembangan.

Saya telah memperbarui semua di bawah dalam proyek saya, dan saya tidak menghadapi kesalahan ini lagi.

Selamat membuat kode! :)

Khemraj
sumber
0

Jika mengubah versi sdk target tidak membantu, maka jika Anda memiliki ketergantungan dengan versi, 3.0.2ubahlah menjadi 3.0.1.

misalnya berubah

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

untuk

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

Solusi yang lebih baik dijelaskan dalam penjelasan resmi . Saya meninggalkan jawaban yang telah saya berikan sebelumnya di bawah garis horizontal.

Menurut solusinya ada:

Gunakan tag eksternal dan tulis kode berikut di bawah ini pada file build.gradle tingkat atas . Anda akan mengubah versi ke variabel daripada nomor versi statis.

ext {
    compileSdkVersion = 26
    supportLibVersion = "27.1.1"
}

Ubah nomor versi statis di file build.gradle tingkat aplikasi Anda , yang sudah (Module: app)mendekati.

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
}

Sinkronkan proyek Anda dan Anda tidak akan mendapatkan kesalahan.


Anda tidak perlu menambahkan apa pun ke skrip Gradle. Instal SDK yang diperlukan dan masalah akan terpecahkan.

Dalam kasus Anda, instal pustaka di bawah ini dari Preferensi> SDK Android atau Alat> Android> Pengelola SDK

masukkan deskripsi gambar di sini

Onur Tuna
sumber
0

Tambahkan baris ini di bawah dependensi di file gradle Anda

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