问题
I'm starting to learn develop android apps.
I'm following a firebase tutorial, and I'm getting some errors on my build.gradle file.
Can someone please help me?
My build.gradle file:
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "br.com.brunots.firebasetests"
minSdkVersion 16
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation ''
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.google.firebase:firebase-core:11.8.0'
testImplementation 'junit:junit:4.1com.android.support:appcompat-v7:27.1.02'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
compile 'com.android.support:design:27.1.0'
compile 'com.firebaseui:firebase-ui:0.6.0'
}
apply plugin: 'com.google.gms.google-services'
These are the errors:
- All gms/firebase libraries must use the exact same version
specification (mixing versions can lead to runtime crashes). Found
versions 9.6.0, 11.8.0. Examples include
com.google.android.gms:play-services-auth:9.6.0andcom.google.android.gms:play-services-basement:11.8.0 - All com.android.support libraries must use the exact same version
specification (mixing versions can lead to runtime crashes). Found
versions 27.1.0, 23.4.0. Examples include
com.android.support:animated-vector-drawable:27.1.0andcom.android.support:cardview-v7:23.4.0
I don't know where is this the older versions is declared.
回答1:
This is because you're using firebase-ui version 0.6.0 which is implicitly using firebase and google play service version 9.6.0 (read more about it at https://github.com/firebase/FirebaseUI-Android/releases/tag/0.6.0). So, you can't use the following:
implementation 'com.google.firebase:firebase-core:11.8.0'
compile 'com.firebaseui:firebase-ui:0.6.0'
you need to use firebase-ui version 3.2.2 which is using firebase 11.8.0 ( read more at https://github.com/firebase/FirebaseUI-Android) like this:
implementation 'com.google.firebase:firebase-core:11.8.0'
implementation 'com.firebaseui:firebase-ui:3.2.2'
and you also need to use support library version 27.0.2 for firebase-ui 3.2.2 (look at https://github.com/firebase/FirebaseUI-Android/blob/master/constants.gradle)
回答2:
Use classpath 'com.google.gms:google-services:3.2.0' // google-services plugin in your build.gradle(project), then in build.gradle(app) add following firebase dependencies:
dependencies {
compile 'com.google.firebase:firebase-core:11.8.0'
compile 'com.firebaseui:firebase-ui:11.8.0'}
because when you are using firebase, all its dependencies version must be same. And for the second error, share what you want to achieve, as it is because of version differences.
回答3:
Add this to the very end of your build.gradle (Module:app):
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '25.3.1'
}
}
}
}
回答4:
Android library versions are supposed to use the same version as your buildToolsVersion which you do not have included. For SDK 27 you should be using 27.0.3. So the android section should start with:
compileSdkVersion 27
buildToolsVersion "27.0.3"
and the included libraries should end with
:27.0.3
回答5:
I solved that analising the dependency tree:
gradlew app:dependencies
so I saw that conflicts are transitive dependencies of com.firebaseui:firebase-ui-auth:0.6.0
then i use exclude on my build.glade:
compile ('com.firebaseui:firebase-ui:0.6.0') {
exclude group: 'com.android.support'
exclude group: 'com.google.firebase'
exclude group: 'com.google.android.gms'
}
No more mixing versions :D
回答6:
configurations.all {
resolutionStrategy {
implementation 'com.android.support:design:27.1.0'
}
}
来源:https://stackoverflow.com/questions/49158936/mixing-dependencies-versions