Saya membuat proyek baru di Android Studio 2.2 Pratinjau 1 dengan Aplikasi Android dan modul Backend dengan Google Messaging. Ini adalah file aplikasi:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.xxx.xxx"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha1'
compile 'com.google.android.gms:play-services-gcm:9.0.0'
testCompile 'junit:junit:4.12'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support:support-annotations:23.4.0'
compile project(path: ':backend', configuration: 'android-endpoints')
}
Tapi itu memberi:
Kesalahan: Konflik dengan ketergantungan 'com.google.code.findbugs: jsr305'. Versi yang diselesaikan untuk aplikasi (1.3.9) dan aplikasi uji (2.0.1) berbeda. Lihat http://g.co/androidstudio/app-test-app-conflict untuk detailnya.
Saya baru mengenal Android dan tidak dapat menemukan kesalahan apa ini. Bagaimana saya memperbaikinya?
2.0.1
bekerja (apa pun, kedua versi harus dipaksa untuk identik).Ini karena espresso. Anda dapat menambahkan yang berikut ke aplikasi Anda
build.grade
untuk mengurangi ini.sumber
exclude group: 'com.android.support', module: 'support-annotations'
METODE 1: Saya menghapus androidTestCompile pada garis inti-espresso yang secara otomatis termasuk dalam proyek baru. Kemudian kompilasi Android Studio saya bersih.
AndroidTestCompile ada di "build.gradle (Module: app)":
Saya tidak tahu apakah penghapusan ini akan memiliki masalah di jalan, tetapi pasti berhasil untuk proyek saya saat ini.
METODE 2: Menambahkan pengecualian pada karya findbugs juga:
METODE 3: Memaksa kompilasi dengan versi tertentu:
(Berikut ini saya paksakan untuk dikompilasi dengan versi yang lebih tinggi.)
sumber
Dari Panduan Pengguna Plugin Gradle :
Tambahkan baris ini ke dependensi build.gradle Anda untuk menggunakan versi yang lebih baru untuk kedua APK:
compile('com.google.code.findbugs:jsr305:2.0.1')
Untuk referensi di masa mendatang, Anda dapat memeriksa Konsol Gradle Anda dan itu akan memberikan tautan bermanfaat di sebelah kesalahan untuk membantu dengan kesalahan pembangunan gradle.
sumber
Alasan mengapa hal ini terjadi adalah karena dependensi menggunakan lib versi diff yang sama.
Jadi, ada 3 langkah atau (1 langkah) untuk menyelesaikan masalah ini.
1
Menambahkan
ke
build.gradle
file Anda diandroid {...}
Ke-2
Buka terminal di perintah android studio
run
./gradlew -q app:dependencies
.Ke-3
Klik
Clean Project
dari menu bar studio android dalamBuild
daftar.Ini akan membangun kembali proyek, dan kemudian
remove
kode pada langkah 1.Mungkin Anda hanya perlu menjalankan langkah ke-2. Saya tidak bisa mengembalikan ketika kesalahan terjadi. Selamat mencoba.
sumber
Ketika saya menambahkan
module: 'jsr305'
sebagai pernyataan pengecualian tambahan, semuanya bekerja dengan baik untuk saya.})
sumber
Masalahnya, sebagaimana dinyatakan dalam log Anda, adalah 2 dependensi mencoba menggunakan versi dependensi ke-3 yang berbeda. Tambahkan salah satu dari berikut ini ke file app-gradle:
sumber
Jawaban yang diterima adalah salah satu cara untuk memperbaiki masalah, karena itu hanya akan menerapkan beberapa strategi untuk ketergantungan yang bermasalah (com.google.code.findbugs: jsr305) dan itu akan menyelesaikan masalah di sekitar proyek, menggunakan beberapa versi dari ketergantungan ini. Pada dasarnya ini akan menyelaraskan versi perpustakaan ini di dalam keseluruhan proyek.
Ada jawaban dari @Santhosh (dan beberapa orang lain) yang menyarankan untuk mengecualikan ketergantungan yang sama untuk espresso, yang seharusnya bekerja dengan cara yang sama, tetapi jika proyek memiliki beberapa dependensi lain yang bergantung pada perpustakaan yang sama (com.google .code.findbugs: jsr305), sekali lagi kita akan memiliki masalah yang sama. Jadi untuk menggunakan pendekatan ini, Anda harus mengecualikan grup yang sama dari semua dependensi proyek, yang bergantung pada com.google.code.findbugs: jsr305. Saya pribadi menemukan bahwa Espresso Contrib dan Intents Espresso juga menggunakan com.google.code.findbugs: jsr305.
Saya harap pemikiran ini akan membantu seseorang untuk menyadari apa sebenarnya yang terjadi di sini dan bagaimana segala sesuatunya bekerja (bukan hanya menyalin tempel beberapa kode) :).
sumber
Tambahkan ini ke dependensi untuk memaksakan menggunakan perpustakaan findbugs versi terbaru:
sumber
menghapus ketergantungan espresso dalam file gradle berfungsi untuk saya.
hapus baris-baris itu di file gradle aplikasi:
sumber
Mereka yang mendapatkan kesalahan yang sama di Android 3.0.1, dapat menyelesaikannya hanya dengan memperbarui versi dari compileSdkVersion dan targetSdkVersion untuk 27 dan juga Melaksanakan com.android.support:appcompat-v7:27.1.1' di dependensi .
sumber
Dalam proyek ': aplikasi' Anda dapat menambahkan yang berikut ke file app / build.gradle Anda:
sumber
Untuk reaksi-asli-firebase , menambahkan ini ke
app/build.gradle
bagian dependensi membuatnya berfungsi untuk saya:sumber
Saya mencoba menggunakan pengiriman deeplink airbnb dan mendapatkan kesalahan ini. saya juga harus mengeluarkan grup findbugs dari annotationProcessor.
sumber
REAKSI ALAMI
Jika Anda mencari reaksi solusi asli, maka tulis snippet ini dalam file build gradasi node_modules Anda, mis. Firebase dalam kasus saya.
sumber