Gradle 版本冲突
Gradle Version conflicts
在我尝试更新 sdk 版本(到 27)和 lib 版本之前,我的 build.gradle 一直很好。
在我的 build.gradle 中,我现在有:
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'com.google.code.gson:gson:2.8.2'
implementation 'com.google.android.gms:play-services-ads:15.0.1'
implementation 'com.google.firebase:firebase-crash:16.0.1'
implementation 'com.google.firebase:firebase-core:16.0.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'
}
我收到一条错误消息:
Please fix the version conflict either by updating the version of the google-services plugin
(information about the latest version is available at https://bintray.com/android/android-tools/com.google.gms.google-services/) or updating the version of com.google.android.gms to 15.0.1.
..但如您所见,它是 15.0.1。
另外,我在
下方有一条波浪形的红色下划线
implementation 'com.android.support:appcompat-v7:27.1.1'
当我将鼠标悬停在上方时,我得到:
all support libraries must use the exact same version ... found versions 27.1.1 and 26.1.0
但我没有看到任何 26.1.0。
我做错了什么?
进入android studio,然后在出现的window中按File -> Invalidate Caches / Restart,按Invalidate and Restart,问题可能出在Cached版本,
为我工作)
您需要更新主 build.gradle 文件:
如果您使用的是 android studio 3.1.2,那么在您的 build.gradle 文件中应该如下所示:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.google.gms:google-services:4.0.1' // you need to update this most probably.
}
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
在你模块的 build.gradle 文件 implement
中 custom tabs
的最新版本在你的情况下是 27.1.1
'com.android.support:customtabs:27.1.1'
我也有类似的问题。更新后。幸运的是在经历了很多线程后解决了这个问题。
由于您使用的是 Firebase,我建议更新 crashlytics。由于旧版本已弃用。
buildscript {
repositories {
google()
jcenter()
maven {
url 'https://maven.fabric.io/public'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
classpath 'com.google.gms:google-services:4.0.1'
classpath 'io.fabric.tools:gradle:1.25.4'
}
}
allprojects {
repositories {
google()
jcenter()
maven {
url 'https://maven.google.com/'
}
}
}
现在是依赖项
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'com.google.gms.google-services'
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.app.abc"
minSdkVersion 19
targetSdkVersion 27
......
}
}
dependencies {
api fileTree(dir: 'libs', include: ['*.jar'])
api 'com.android.support:appcompat-v7:27.1.1'
api 'com.android.support:support-v4:27.1.1'
api 'com.android.support:design:27.1.1'
//crash analytics
api 'com.crashlytics.sdk.android:crashlytics:2.9.3'
api 'com.google.firebase:firebase-crash:11.8.0'
//Google Maps. You can avoid this, as I was using location services as well
api 'com.google.android.gms:play-services-maps:12.0.1'
api 'com.google.android.gms:play-services-places:12.0.1'
api 'com.google.android.gms:play-services:12.0.1'
api 'com.google.android.gms:play-services-location:12.0.1'
}
错误提示您存在依赖冲突。我曾经在 expresso 测试中遇到过这个问题。您要做的是排除 expresso 测试库的其他依赖项。
androidTestCompile ('com.android.support.test.espresso:espresso-core:3.0.2'){
exclude module: 'support-annotations'
exclude module: 'support-v4'
exclude module: 'support-v13'
exclude module: 'recyclerview-v7'
exclude module: 'design'
}
在我尝试更新 sdk 版本(到 27)和 lib 版本之前,我的 build.gradle 一直很好。
在我的 build.gradle 中,我现在有:
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'com.google.code.gson:gson:2.8.2'
implementation 'com.google.android.gms:play-services-ads:15.0.1'
implementation 'com.google.firebase:firebase-crash:16.0.1'
implementation 'com.google.firebase:firebase-core:16.0.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'
}
我收到一条错误消息:
Please fix the version conflict either by updating the version of the google-services plugin
(information about the latest version is available at https://bintray.com/android/android-tools/com.google.gms.google-services/) or updating the version of com.google.android.gms to 15.0.1.
..但如您所见,它是 15.0.1。
另外,我在
下方有一条波浪形的红色下划线implementation 'com.android.support:appcompat-v7:27.1.1'
当我将鼠标悬停在上方时,我得到:
all support libraries must use the exact same version ... found versions 27.1.1 and 26.1.0
但我没有看到任何 26.1.0。
我做错了什么?
进入android studio,然后在出现的window中按File -> Invalidate Caches / Restart,按Invalidate and Restart,问题可能出在Cached版本, 为我工作)
您需要更新主 build.gradle 文件:
如果您使用的是 android studio 3.1.2,那么在您的 build.gradle 文件中应该如下所示:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.google.gms:google-services:4.0.1' // you need to update this most probably.
}
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
在你模块的 build.gradle 文件 implement
中 custom tabs
的最新版本在你的情况下是 27.1.1
'com.android.support:customtabs:27.1.1'
我也有类似的问题。更新后。幸运的是在经历了很多线程后解决了这个问题。
由于您使用的是 Firebase,我建议更新 crashlytics。由于旧版本已弃用。
buildscript {
repositories {
google()
jcenter()
maven {
url 'https://maven.fabric.io/public'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
classpath 'com.google.gms:google-services:4.0.1'
classpath 'io.fabric.tools:gradle:1.25.4'
}
}
allprojects {
repositories {
google()
jcenter()
maven {
url 'https://maven.google.com/'
}
}
}
现在是依赖项
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'com.google.gms.google-services'
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.app.abc"
minSdkVersion 19
targetSdkVersion 27
......
}
}
dependencies {
api fileTree(dir: 'libs', include: ['*.jar'])
api 'com.android.support:appcompat-v7:27.1.1'
api 'com.android.support:support-v4:27.1.1'
api 'com.android.support:design:27.1.1'
//crash analytics
api 'com.crashlytics.sdk.android:crashlytics:2.9.3'
api 'com.google.firebase:firebase-crash:11.8.0'
//Google Maps. You can avoid this, as I was using location services as well
api 'com.google.android.gms:play-services-maps:12.0.1'
api 'com.google.android.gms:play-services-places:12.0.1'
api 'com.google.android.gms:play-services:12.0.1'
api 'com.google.android.gms:play-services-location:12.0.1'
}
错误提示您存在依赖冲突。我曾经在 expresso 测试中遇到过这个问题。您要做的是排除 expresso 测试库的其他依赖项。
androidTestCompile ('com.android.support.test.espresso:espresso-core:3.0.2'){
exclude module: 'support-annotations'
exclude module: 'support-v4'
exclude module: 'support-v13'
exclude module: 'recyclerview-v7'
exclude module: 'design'
}