Setelah memperbarui Android Studio dari Canary 3 ke Canary 4 , kesalahan berikut muncul pada waktu pembuatan.
Ketergantungan Android 'com.android.support:support-support-v4' memiliki versi berbeda untuk classpath kompilasi (25.2.0) dan runtime (26.0.0-beta2). Anda harus menyetel versi yang sama secara manual melalui DependencyResolution.
Saya menjalankan pencarian lengkap di seluruh proyek dan versinya 25.1.0
tidak digunakan.
App-build.gradle
android {
compileSdkVersion 26
buildToolsVersion '26.0.0'
defaultConfig {
applicationId "com.xxx.xxxx"
minSdkVersion 14
targetSdkVersion
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
debug {
debuggable true
}
release {
debuggable false
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
lintOptions {
abortOnError false
}
}}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
testImplementation 'junit:junit:4.12'
implementation project(':core')
implementation com.google.android.gms:play-services-gcm:9.0.0'
implementation('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
transitive = true
}
implementation 'com.android.support:multidex:1.0.1'
implementation 'com.flurry.android:analytics:7.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0'
implementation 'com.jakewharton:butterknife:8.6.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
}
Library-build.gradle:
apply plugin: 'com.android.library'
android {
compileSdkVersion 26
buildToolsVersion '26.0.0'
defaultConfig {
minSdkVersion 14
targetSdkVersion
versionCode 1
versionName "1.0"
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation files('libs/model.jar')
testImplementation 'junit:junit:4.12'
implementation 'com.android.support:percent:26.0.0-beta2'
implementation 'com.android.support:appcompat-v7:26.0.0-beta2'
implementation 'com.android.support:support-core-utils:26.0.0-beta2'
implementation 'com.squareup.retrofit2:retrofit:2.0.2'
implementation 'com.squareup.picasso:picasso:2.4.0'
implementation 'com.squareup.retrofit2:converter-gson:2.0.2'
implementation 'com.squareup.okhttp3:logging-interceptor:3.2.0'
implementation 'uk.co.chrisjenx:calligraphy:2.2.0'
implementation 'com.google.code.gson:gson:2.2.4'
implementation 'com.android.support:design:26.0.0-beta2'
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.1'
}
Catatan: Proyek sedang dibangun dengan baik di Canary 3
android
android-gradle-plugin
build.gradle
DroidLearner
sumber
sumber
Jawaban:
Gunakan kode ini di buildscript Anda (build.gradle root):
sumber
!details.requested.name.contains('multidex')
benar - benar membantu saya.Saya mengalami kesalahan yang sama, yang memecahkan masalah saya. Di perpustakaan saya daripada menggunakan kompilasi atau implementasi, saya menggunakan "api". Jadi pada akhirnya ketergantungan saya:
Anda dapat menemukan info lebih lanjut tentang "api", "implementasi" di tautan ini https://stackoverflow.com/a/44493379/3479489
sumber
Anda harus dapat melihat dengan tepat dependensi mana yang menarik versi ganjil sebagai dependensi transitif dengan menjalankan
gradle -q dependencies
perintah yang benar untuk project Anda seperti yang dijelaskan di sini:https://docs.gradle.org/current/userguide/userguide_single.html#sec:listing_dependencies
Setelah Anda melacak apa yang menariknya, Anda dapat menambahkan pengecualian ke dependensi spesifik tersebut di file gradle Anda dengan sesuatu seperti:
sumber
Setelah banyak waktu dan mendapatkan bantuan dari seorang teman yang tahu lebih banyak dari saya tentang android: app / build.gradle
dan ketergantungan
di build.gradle
di gradle.properties
sumber
resolutionStrategy.force
adalah satu-satunya hal yang berhasil bagi saya. Terima kasih!Jawaban bagi saya adalah menambahkan ini ke
build.gradle
file saya :Dalam kasus saya, strategi resolusi harus disertakan dalam satu
configurations.all { .. }
blok. Saya menempatkanconfigurations.all
blok langsung keapp/build.gradle
file saya (yaituconfigurations.all
tidak bersarang di hal lain)sumber
Ini berhasil untuk saya:
Tambahkan baris ikuti
app/build.gradle
di bagian dependensi:atau
:27.1.1
dalam kasus sayasumber
Tambahkan kode ini di file build.gradle level project Anda.
Kode sampel :
sumber
Jika ada yang mendapatkan masalah ketergantungan ini pada tahun 2019, perbarui Android Studio ke 3.4 atau yang lebih baru
sumber
Saya menyelesaikannya dengan memutakhirkan ketergantungan gradle saya di file android / build.gradle: classpath 'com.android.tools.build:gradle:3.3.1' (Saya sebelumnya menggunakan versi 3.2.
sumber
Saya menyelesaikannya dengan mengikuti apa yang Eddi sebutkan di atas,
sumber
Mengalihkan ketergantungan saya yang bertentangan dari implementasi ke api bisa membantu. Inilah artikel bagus oleh mindorks yang menjelaskan perbedaannya.
https://medium.com/mindorks/implementation-vs-api-in-gradle-3-0-494c817a6fa
Edit:
Inilah resolusi ketergantungan saya juga
sumber
Lihat di proyek perpustakaan Anda membuat versi compileSdkVersion dan targetSdkVersion ke level yang sama dengan aplikasi Anda
juga membuat semua dependensi ke level yang sama
sumber
Saya berkomentar bahwa
//api 'com.google.android.gms:play-services-ads:15.0.1'
itu berhasil untuk saya setelah sinkronisasisumber
Cukup tambahkan baris ini di file build.gradle Anda
resolutionStrategy.force "com.android.support:support-media-compat:26.0.0-beta2"
resolutionStrategy.force "com.android.support:support-v4:26.0.0-beta2"
sumber
Dalam kasus saya, saya memiliki dua versi berbeda dari implementasi di bawah ini dalam dua modul yang berbeda, jadi saya mengubah kedua implementasi ke versi yaitu: 6.0.2 dan berhasil. Anda mungkin juga perlu menulis resolusi ketergantungan untuk melihat jawaban yang diterima.
modul aplikasi
modul commons
sumber
tambahkan ini ke gradle (proyek) di dalamnya
allprojects
sumber
Ganti versi hard code ke + contoh:
sumber