在空项目上,添加 firebase 后会导致以下错误:
图片版本: -
文字版: -
所有com.android.support库必须使用完全相同的版本 规范(混合版本可能导致运行时崩溃)。发现 版本27.1.1,25.2.0。例子包括 com.android.support:animated-vector-drawable:27.1.1和 com.android.support:support-media-compat:25.2.0
另一个错误:
警告:配置'编译'已经过时,已被取代 实施'和' api'。
是否有任何可能的解决方案可以删除这些警告?
我的项目build.gradle 是:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.google.gms:google-services:3.1.1'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
我的 app build.gradle 是:
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.mad.android.firebasetestauth2"
minSdkVersion 24
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 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.google.firebase:firebase-auth:11.6.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
apply plugin: 'com.google.gms.google-services'
答案 0 :(得分:6)
发生错误是因为 google-services 正在实施一些未使用27.1.1版本的库。所以我们需要覆盖版本。
为了做到这一点,总是尝试在android studio的 终端 中运行:
./gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath
这将显示一个依赖项列表,其中显示了它的版本号,如下所示: -
在这里,我们需要找到那些尚未被覆盖的依赖项,其版本号如 25或26而不会覆盖到27 。
与上面的示例一样,我们有com.android.support:support-v4:25.2.0
现在我们只需要使用最新版本号将其添加到依赖项块中。
最后,依赖关系块如下所示:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support:support-media-compat:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.google.firebase:firebase-auth:12.0.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
我们在这里添加
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support:support-media-compat:27.1.1'
修复
的第二个错误警告:配置'编译'已经过时,已被取代 实施'和' api'。
在项目build.gradle 中,更新
classpath 'com.google.gms:google-services:3.1.1'
到
classpath 'com.google.gms:google-services:3.2.0'