最高的Firebase版本代码也用于编译Play服务库。
最高的Firebase版本代码也用于编译Play服务库。
我在我的项目中使用了某些Firebase和Play服务库。在将Play服务插件版本更新为4.0.0之后,由于Firebase和Play服务现在对每个库使用不同的版本编码策略,其中一个库中的最高版本代码将替换所有其他库。这导致无法解析仍在使用较低版本代码的库。
build.gradle
buildscript { ext.kotlin_version = '1.2.41' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.2' classpath 'com.google.gms:google-services:4.0.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { google() jcenter() mavenCentral() } } task clean(type: Delete) { delete rootProject.buildDir }
app.gradle
apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin' android { compileSdkVersion 27 buildToolsVersion '27.0.3' defaultConfig { applicationId "com.vanse.android" minSdkVersion 19 targetSdkVersion 27 versionCode 1 versionName "8.0" multiDexEnabled true vectorDrawables.useSupportLibrary = true testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" manifestPlaceholders = [onesignal_app_id : ONE_SIGNAL_APP_ID, onesignal_google_project_number: "REMOTE"] } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } compileOptions { targetCompatibility 1.8 sourceCompatibility 1.8 } lintOptions { abortOnError false } } buildscript { repositories { maven { url 'https://plugins.gradle.org/m2/' } } dependencies { classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.8.1' } } repositories { maven { url 'https://maven.google.com' } } dependencies { // 各种依赖库 } apply plugin: 'com.google.gms.google-services'
错误信息
构建失败: 出现异常。 * 出现了什么问题: 无法解析配置“:app:debugCompileClasspath”的所有文件。 > 找不到 com.google.firebase:firebase-appindexing:16.0.0。 需要它来运行: 项目:app > 找不到 com.google.firebase:firebase-ads:16.0.0。 需要它来运行: 项目:app > 找不到 com.google.android.gms:play-services-auth:16.0.0。 需要它来运行: 项目:app > 找不到 com.google.android.gms:play-services-gcm:16.0.0。 需要它来运行: 项目:app > 找不到 com.google.android.gms:play-services-location:16.0.0。 需要它来运行: 项目:app > 找不到 com.google.android.gms:play-services-base:16.0.0。 需要它来运行: 项目:app 项目:app > com.google.firebase:firebase-invites:16.0.0 > com.google.android.gms:play-services-appinvite:16.0.0 项目:app > com.google.firebase:firebase-invites:16.0.0 > com.google.android.gms:play-services-appinvite:16.0.0 > com.google.firebase:firebase-dynamic-links:16.0.0 项目:app > com.google.firebase:firebase-core:16.0.0 > com.google.firebase:firebase-analytics:16.0.0 > com.google.firebase:firebase-analytics-impl:16.0.0 > com.google.firebase:firebase-iid:16.0.0 > com.google.firebase:firebase-iid-interop:16.0.0 > 找不到 com.google.android.gms:play-services-cast-framework:16.0.0。 需要它来运行: 项目:app > 找不到 com.google.firebase:firebase-messaging:16.0.0。 需要它来运行: 项目:app > com.onesignal:OneSignal:3.9.1 > 找不到 com.google.android.gms:play-services-location:16.0.0。 需要它来运行: 项目:app > com.onesignal:OneSignal:3.9.1 > 找不到 com.google.android.gms:play-services-base:16.0.0。 需要它来运行: 项目:app > com.onesignal:OneSignal:3.9.1 > 找不到 com.google.android.gms:play-services-basement:16.0.0。 需要它来运行: 项目:app > com.google.firebase:firebase-core:16.0.0 > com.google.firebase:firebase-analytics:16.0.0 项目:app > com.google.firebase:firebase-core:16.0.0 > com.google.firebase:firebase-measurement-connector-impl:16.0.0 项目:app > com.google.firebase:firebase-invites:16.0.0 > com.google.android.gms:play-services-appinvite:16.0.0 项目:app > com.google.firebase:firebase-core:16.0.0 > com.google.firebase:firebase-analytics:16.0.0 > com.google.firebase:firebase-analytics-impl:16.0.0 项目:app > com.google.firebase:firebase-core:16.0.0 > com.google.firebase:firebase-analytics:16.0.0 > com.google.firebase:firebase-common:16.0.0 项目:app > com.google.firebase:firebase-core:16.0.0 > com.google.firebase:firebase-measurement-connector-impl:16.0.0 > com.google.firebase:firebase-measurement-connector:16.0.0 项目:app > com.google.firebase:firebase-invites:16.0.0 > com.google.android.gms:play-services-appinvite:16.0.0 > com.google.firebase:firebase-dynamic-links:16.0.0 项目:app > com.google.firebase:firebase-core:16.0.0 > com.google.firebase:firebase-analytics:16.0.0 > com.google.firebase:firebase-analytics-impl:16.0.0 > com.google.firebase:firebase-iid:16.0.0 项目:app > com.google.firebase:firebase-core:16.0.0 > com.google.firebase:firebase-analytics:16.0.0 > com.google.firebase:firebase-analytics-impl:16.0.0 > com.google.firebase:firebase-iid:16.0.0 > com.google.firebase:firebase-iid-interop:16.0.0 > 找不到 com.google.android.gms:play-services-measurement-base:16.0.0。 需要它来运行: 项目:app > com.google.firebase:firebase-core:16.0.0 > com.google.firebase:firebase-analytics:16.0.0 项目:app > com.google.firebase:firebase-core:16.0.0 > com.google.firebase:firebase-measurement-connector-impl:16.0.0 项目:app > com.google.firebase:firebase-invites:16.0.0 > com.google.android.gms:play-services-appinvite:16.0.0 项目:app > com.google.firebase:firebase-core:16.0.0 > com.google.firebase:firebase-analytics:16.0.0 > com.google.firebase:firebase-analytics-impl:16.0.0 项目:app > com.google.firebase:firebase-invites:16.0.0 > com.google.android.gms:play-services-appinvite:16.0.0 > com.google.firebase:firebase-dynamic-links:16.0.0 > 找不到 com.google.android.gms:play-services-stats:16.0.0。 需要它来运行: 项目:app > com.google.firebase:firebase-core:16.0.0 > com.google.firebase:firebase-analytics:16.0.0 项目:app > com.google.firebase:firebase-core:16.0.0 > com.google.firebase:firebase-analytics:16.0.0 > com.google.firebase:firebase-analytics-impl:16.0.0 项目:app > com.google.firebase:firebase-core:16.0.0 > com.google.firebase:firebase-analytics:16.0.0 > com.google.firebase:firebase-analytics-impl:16.0.0 > com.google.firebase:firebase-iid:16.0.0 > 找不到 com.google.android.gms:play-services-tasks:16.0.0。 需要它来运行: 项目:app > com.google.firebase:firebase-invites:16.0.0 > com.google.android.gms:play-services-appinvite:16.0.0 项目:app > com.google.firebase:firebase-core:16.0.0 > com.google.firebase:firebase-analytics:16.0.0 > com.google.firebase:firebase-analytics-impl:16.0.0 项目:app > com.google.firebase:firebase-core:16.0.0 > com.google.firebase:firebase-analytics:16.0.0 > com.google.firebase:firebase-common:16.0.0 项目:app > com.google.firebase:firebase-invites:16.0.0 > com.google.android.gms:play-services-appinvite:16.0.0 > com.google.firebase:firebase-dynamic-links:16.0.0 项目:app > com.google.firebase:firebase-core:16.0.0 > com.google.firebase:firebase-analytics:16.0.0 > com.google.firebase:firebase-analytics-impl:16.0.0 > com.google.firebase:firebase-iid:16.0.0 > 找不到 com.google.android.gms:play-services-ads-identifier:16.0.0。 需要它来运行: 项目:app > com.google.firebase:firebase-core:16.0.0 > com.google.firebase:firebase-analytics:16.0.0 > com.google.firebase:firebase-analytics-impl:16.0.0 * 尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获取更多日志输出。使用 --scan 运行以获取完整的信息。 * 在 https://help.gradle.org 获取更多帮助 在 36s内构建失败
最高的Firebase版本编译Play服务库时也被使用了,导致出现了问题。解决方法是将Firebase版本从16.0.1降级到15.0.0,与com.google.android.gms:play-services-maps:15.x.x相匹配,并升级最新的OneSignal插件。如果在尝试运行项目时遇到另一个错误,并且出现以下警告,则可能会出现错误:
AGPBI: {"kind":"error","text":"Program type already present: android.support.design.widget.CoordinatorLayout$Behavior","sources":[{}],"tool":"D8"}
如果是这样,请在依赖项中添加以下代码:
implementation 'com.android.support:design-v7:27.1.0'
同时确保使用与我这里完全相同的版本,否则可能会遇到问题。其他需要检查的内容有:
classpath 'com.android.tools.build:gradle:3.1.0'
classpath 'com.google.gms:google-services:3.0.0'
希望这能帮到你,因为我花了两天才解决,如果还有其他问题,请随时提问。编码愉快!