【发布时间】:2018-09-12 11:07:27
【问题描述】:
我的应用使用部分 Google Play 服务和 Firebase,我想实现 Firebase 的应用内消息。我的 google-services 插件在 v4.1.0,我的应用级 Gradle 文件中的相关依赖项如下所示:
implementation "com.google.android.gms:play-services-location:15.0.1"
implementation "com.google.android.gms:play-services-analytics:16.0.3"
implementation "com.google.android.gms:play-services-ads:15.0.1"
implementation "com.google.android.gms:play-services-auth:16.0.0"
implementation 'com.google.firebase:firebase-inappmessaging-display:17.0.1' //this error only popped up when I added this line
implementation 'com.google.firebase:firebase-messaging:17.3.1'
implementation "com.google.firebase:firebase-core:16.0.3"
implementation "com.google.firebase:firebase-auth:16.0.3"
implementation "com.google.firebase:firebase-database:16.0.2"
implementation "com.google.firebase:firebase-config:16.0.0"
implementation "com.google.firebase:firebase-appindexing:16.0.1"
我在尝试构建我的应用时遇到以下错误:
The library com.google.android.gms:play-services-measurement-base is being requested by various other libraries at [[15.0.4,15.0.4], [16.0.2,16.0.2]], but resolves to 16.0.2.
我知道一些其他问题和 Firebase 的文档说我必须将所有 Firebase 和 Play 服务的功能更新到最新版本,但这些是最新版本。我已经检查了两者的官方文档。
16.0.2 仅匹配 firebase-database 依赖项,所以与此有关吗?或者是别的什么(缺失或需要更新)?
编辑:根据要求,我的项目级 Gradle 文件:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
mavenCentral()
maven {
url "https://maven.google.com"
}
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
classpath 'com.google.gms:google-services:4.1.0' // google-services plugin
}
}
allprojects {
repositories {
jcenter()
mavenCentral()
maven {
//url "https://jitpack.io"
url "https://maven.google.com"
}
flatDir {
dirs 'libs'
}
}
}
还有我的 app 模块级 Gradle 文件:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
jcenter()
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
google()
}
android {
compileSdkVersion 27
buildToolsVersion '27.0.3'
useLibrary 'org.apache.http.legacy'
defaultConfig {
applicationId "com.picmix.mobile"
minSdkVersion 15
targetSdkVersion 27
multiDexEnabled true
buildConfigField "String", "EMBED", "\"\""
versionCode 90 //Latest Version on Google Play
versionName "7.7.8"
packagingOptions{
doNotStrip '*/mips/*.so'
doNotStrip '*/mips64/*.so'
}
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86"
}
}
signingConfigs {
release {
storeFile file("/Volumes/work/cert/android/picmix_key")
storePassword "P1cMIx_M0B1l3_#2012#"
keyAlias "picmix"
keyPassword "P1cMIx_M0B1l3_#2012#"
}
}
flavorDimensions "default"
productFlavors {
dev {
minSdkVersion 21
versionCode 1
versionName "1.0"
}
dev2 {
minSdkVersion 15
versionCode 1
versionName "1.0"
}
preload {
buildConfigField "String", "EMBED", "\"huawei\""
}
prod {
minSdkVersion 15
}
andgo {
minSdkVersion 15
versionCode 50000 + android.defaultConfig.versionCode
}
// lintOptions {
// checkReleaseBuilds false
// }
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
debuggable false
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
//minifyEnabled true //Normally THIS SHOULDN'T BE HERE
debuggable true
//shrinkResources true
//proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' //Normally THIS SHOULDN'T BE HERE
}
}
dexOptions {
javaMaxHeapSize "2g"
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
/*
defaultConfig {
renderscriptTargetApi 21
renderscriptSupportModeEnabled true
renderscriptSupportModeBlasEnabled true
}
*/
}
ext {
supportLibVersion = '27.1.1';
gmsVersion = '15.0.0';
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation files('libs/libadapterinmobi.jar')
// implementation project(':volley')
//debugimplementation project(path: ':PG_Edit_SDK', configuration: 'debug')
//releaseimplementation project(path: ':PG_Edit_SDK', configuration: 'release')
//implementation('com.twitter.sdk.android:twitter-core:1.7.0@aar') {
// transitive = true;
//}
implementation 'com.twitter.sdk.android:twitter-core:3.0.0'
implementation('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
transitive = true;
}
//implementation files('libs/InMobi-6.2.3.jar')
//implementation files('libs/adcolony.jar')
//implementation files('libs/dagger-2.7.jar')
//implementation files('libs/javax.inject-1.jar')
//implementation files('libs/vungle-publisher-adaptive-id-4.0.3.jar')
//implementation(name: 'AudienceNetwork', ext: "aar")
//implementation(name: 'PokktSDK_v6.0', ext: "aar")
//implementation(name: 'unity-ads', ext: "aar")
//implementation 'com.vmax.android.ads.aar:vmax@aar'
implementation "com.android.support:appcompat-v7:$supportLibVersion"
implementation "com.android.support:customtabs:$supportLibVersion"
implementation "com.android.support:design:$supportLibVersion"
implementation "com.android.support:cardview-v7:$supportLibVersion"
implementation "com.android.support:recyclerview-v7:$supportLibVersion"
implementation "com.android.support:palette-v7:$supportLibVersion"
implementation "com.android.support:support-v4:$supportLibVersion"
implementation "com.google.android.gms:play-services-location:15.0.1"
implementation "com.google.android.gms:play-services-analytics:16.0.3"
implementation "com.google.android.gms:play-services-ads:15.0.1"
implementation "com.google.android.gms:play-services-auth:16.0.0"
implementation "com.google.firebase:firebase-core:16.0.3"
implementation "com.google.firebase:firebase-messaging:17.3.1"
implementation "com.google.firebase:firebase-auth:16.0.3"
implementation "com.google.firebase:firebase-database:16.0.2"
implementation "com.google.firebase:firebase-appindexing:16.0.1"
implementation "com.google.android.gms:play-services-measurement-base:16.0.2"
implementation "com.google.firebase:firebase-config:16.0.0"
implementation "com.google.firebase:firebase-inappmessaging-display:17.0.1"
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.github.bumptech.glide:glide:3.8.0'
implementation 'com.facebook.android:facebook-android-sdk:4.30.0'
implementation 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1'
implementation 'com.melnykov:floatingactionbutton:1.3.0'
implementation 'com.googlecode.mp4parser:isoparser:1.1.22'
implementation 'me.relex:circleindicator:1.2.1@aar'
implementation 'com.android.volley:volley:1.1.0'
implementation 'com.github.bumptech.glide:volley-integration:1.5.0@aar'
implementation 'com.squareup.okhttp3:okhttp:3.5.0'
implementation 'com.mixpanel.android:mixpanel-android:4.9.8'
implementation 'com.flurry.android:analytics:6.4.2'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'io.github.luizgrp.sectionedrecyclerviewadapter:sectionedrecyclerviewadapter:1.0.4'
implementation 'com.danikula:videocache:2.7.0'
//implementation 'com.android.support.constraint:constraint-layout:1.0.0-alpha8'
implementation 'com.inmobi.monetization:inmobi-ads:7.0.2'
implementation group: 'commons-io', name: 'commons-io', version: '2.5'
}
apply plugin: 'com.google.gms.google-services'
【问题讨论】:
-
尝试将
firebase-core放在依赖列表的首位,如相关问题的答案所述:stackoverflow.com/q/51025793/4815718 -
我认为它不起作用,尽管我确实发现由于某种原因
com.google.firebase:firebase-inappmessaging-display:17.0.1和com.google.firebase:firebase-config:16.0.0一起引起了某种冲突 - 当我删除其中一个时,错误消失了。如何使用:app:dependencies选项查看导致错误的冲突内容? -
要查看依赖关系树,请注释掉 gradle 文件底部的
apply plugin: 'com.google.gms.google-services'行,然后在终端窗口中输入命令gradlew :app:dependencies -
我无法重现您的结果,尽管我的配置不同。我正在使用
google-services:4.0.2和gradle:3.3.0-alpha10。如果您更新您的问题以包含项目和应用模块的整个build.gradle文件,我会再看更多。 -
有
gradle:3.3.0-alpha10?我以为最新的是 3.1.4。
标签: android firebase google-play-services