尝试使用FireStore和Google身份验证创建一个简单的应用程序。 gradle有问题:
在项目“应用”中,已解决的Google Play服务库依赖性 取决于另一个版本的确切版本(例如“ [15.0。1]”,但不是 被解析为该版本。图书馆展示的行为将 不为人知。
依赖项失败:com.google.android.gms:play-services-flags:15.0.1 -> com.google.android.gms:play-services-basement @ [ 15.0.1],但play-services-basement版本为16.0.1。
以下依赖项是直接或直接的项目依赖项 具有传递依赖,从而导致与 问题。 -项目“应用”取决于com.google.firebase:firebase-firestore@17.1.5 -项目``app''取决于com.firebaseui:firebase-ui-auth@4.2.0
有关扩展调试信息,请从命令行使用以下命令执行Gradle ./gradlew --info:app:assembleDebug以查看到的dep endency路径 神器。此错误消息来自google-services Gradle 插件,在https://上报告问题 github.com/google/play-services-plugins并通过添加禁用 “ googleServices {disableVersionCheck = false}”到您的build.gradle 文件。
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "myapp.com"
minSdkVersion 19
targetSdkVersion 27
versionCode 11
versionName "1.1"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
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.1.3'
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'
implementation 'com.google.firebase:firebase-firestore:17.1.5'
implementation 'com.firebaseui:firebase-ui-auth:4.2.0'
}
apply plugin: 'com.google.gms.google-services'
com.google.gms.googleservices.GoogleServicesPlugin
项目gradle:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.google.gms:google-services:4.2.0'
}
}
有人可以帮我吗?
答案 0 :(得分:8)
您的app/build.gradle
可能会在Android Studio的依赖项中阻止这些柠檬色,如下图所示,
这些(柠檬色块)表示它不是最新版本的依赖项。只需将鼠标放在每个块上,然后IDE(Android Studio)就会告诉您必须更改的数字。
答案 1 :(得分:7)
问题是缺少一个依赖项。 添加com.google.firebase:firebase-auth解决了该问题。
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
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'
implementation 'com.google.firebase:firebase-firestore:17.1.5'
// implementation'com.google.firebase:firebase-core:16.0.6'
// implementation'com.google.firebase:firebase-storage:16.0.5'
implementation'com.google.firebase:firebase-auth:16.1.0' => add this line
implementation 'com.firebaseui:firebase-ui-auth:4.2.0'
}
答案 2 :(得分:5)
我在项目中将最新版本的Firebase消息传递添加到build.gradle(模块:app)中,问题已解决
implementation 'com.google.firebase:firebase-messaging:20.0.0'
答案 3 :(得分:5)
我的项目运行正常(无构建问题)。突然,我得到了这个错误
“已解决的Google Play服务库依赖项取决于另一个版本。”
我发现这是因为我正在离线构建。
如果有人遇到相同的错误,请检查您是否正在离线构建。
答案 4 :(得分:4)
在我的项目的build.gradle中升级此库之后,问题已解决:
classpath 'com.google.gms:google-services:4.3.3'
以及应用模块的build.gradle中的这些:
implementation 'com.google.firebase:firebase-core:17.3.0'
implementation 'com.google.firebase:firebase-messaging:20.1.5'
此后,请使用Android Studio的Clean
菜单
答案 5 :(得分:3)
对于单个解决方案,这里有很多答案并不能真正解决问题。 以下是一般解决方法:
如原始日志输出所示,使用以下命令在终端中运行构建很有用:
./gradlew --info assembleDebug
这将为您提供冲突中涉及的所有依赖项的列表。看起来与此类似(我删除了程序包名称,以使其更具可读性):
Dependency Resolution Help: Displaying all currently known paths to any version of the dependency: Artifact(groupId=com.google.firebase, artifactId=firebase-iid)
-- task/module dep -> firebase-analytics@17.2.0
---- firebase-analytics:17.2.0 library depends -> play-services-measurement-api@17.2.0
------ play-services-measurement-api:17.2.0 library depends -> firebase-iid@19.0.0
-- task/module dep -> firebase-core@17.2.0
---- firebase-core:17.2.0 library depends -> firebase-analytics@17.2.0
------ firebase-analytics:17.2.0 library depends -> play-services-measurement-api@17.2.0
-------- play-services-measurement-api:17.2.0 library depends -> firebase-iid@19.0.0
-- task/module dep -> play-services-measurement-api@17.2.0
---- play-services-measurement-api:17.2.0 library depends -> firebase-iid@19.0.0
-- task/module dep -> firebase-iid@19.0.0
-- task/module dep -> firebase-messaging@17.1.0
---- firebase-messaging:17.1.0 library depends -> firebase-iid@[16.2.0]
-- task/module dep -> com.pressenger:sdk@4.8.0
---- com.pressenger:sdk:4.8.0 library depends -> firebase-messaging@17.1.0
------ firebase-messaging:17.1.0 library depends -> firebase-iid@[16.2.0]
从此列表中,您了解2件事:
在我的情况下,冲突的依赖项是firebase-iid
:它是@19.0.0
或@16.2.0
要解决此问题,您必须在firebase-iid
中明确定义错误的build.gralde
的顶级依赖项。
因此,在上方的日志中,您可以看到有2个过时版本的firebase-iid@16.2.0的示例。一个来自-- task/module dep -> firebase-messaging@17.1.0
,另一个来自第三方库(增压器)。我们对第三方库没有影响,因此此处无事可做。
但是对于其他依赖项,我们必须使用正确的版本显式声明它:
implementation 'com.google.firebase:firebase-messaging:20.0.0'
现在,构建可以再次运行。大结局:)
答案 6 :(得分:3)
没有其他答案对我有用。我的用例是from itertools import combinations
from collections import defaultdict
def get_nested_list(arr, n, k):
iterator = 0
nest = []
d = defaultdict(set)
for i in range(1, n):
for combo in combinations(arr, i):
odd_num = 0
for item in combo:
if item % 2 != 0:
odd_num += 1
if odd_num <= k:
iterator += 1
skip = False
len_c = len(combo)
for j, n in enumerate(combo):
if n in d.get((len_c, j), set()):
skip = True
break
d[(len_c, j)].add(n)
if skip: continue
nest.append(combo)
nest = [list(i) for i in nest]
return nest
a = [1, 2, 3, 4]
b = len(a)
c = 1
res = get_nested_list(a, b, c)
print(res)
assert res == [[1], [2], [3], [4], [1, 2], [2, 3], [3, 4], [1, 2, 4]]
尝试设置FCM和Analytics。对我有用的是在INVOCATION_VARIABLES:
deployTarget1:
cpspgpoolc:
- HA_PGPOOL_VIRTUAL_IP: 'vIP1'
HA_PGPOOL_WATCHDOG_PORT: '5445'
PCP_PORT: '5440'
PGPOOL_PORT: '5441'
POOL_NUMBER: '0'
pgpoolc:
- HA_PGPOOL_VIRTUAL_IP: 'vIP2'
HA_PGPOOL_WATCHDOG_PORT: '5435'
PCP_PORT: '5430'
PGPOOL_PORT: '5431'
POOL_NUMBER: '0'
deployTarget2:
cpspgpoolc:
- HA_PGPOOL_VIRTUAL_IP: 'vIP1'
HA_PGPOOL_WATCHDOG_PORT: '5445'
PCP_PORT: '5440'
PGPOOL_PORT: '5441'
POOL_NUMBER: '1'
pgpoolc:
- HA_PGPOOL_VIRTUAL_IP: 'vIP2'
HA_PGPOOL_WATCHDOG_PORT: '5435'
PCP_PORT: '5430'
PGPOOL_PORT: '5431'
POOL_NUMBER: '1'
deployTarget3:
cpspgpoolc:
- HA_PGPOOL_VIRTUAL_IP: 'vIP1'
HA_PGPOOL_WATCHDOG_PORT: '5445'
PCP_PORT: '5440'
PGPOOL_PORT: '5441'
POOL_NUMBER: '2'
pgpoolc:
- HA_PGPOOL_VIRTUAL_IP: 'vIP2'
HA_PGPOOL_WATCHDOG_PORT: '5435'
PCP_PORT: '5430'
PGPOOL_PORT: '5431'
POOL_NUMBER: '2'
React-Native 61+
google-services
然后将gradle依赖项添加到here中我正在使用的产品(在我的情况下为Analytics和Cloud Messaging)所需的android/build.gradle
dependencies {
classpath "com.android.tools.build:gradle:3.4.2"
classpath "com.google.gms:google-services:4.3.3" // Need the latest here
}
答案 7 :(得分:2)
我正在使用一个信号并一次捕获到此错误。
原因是:
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
apply plugin: 'com.android.application'
将apply plugin
放在'com.android.application'
之前的一个信号上。
也许这对其他一些apply plugin
也会有用。
答案 8 :(得分:2)
我只是亲自尝试了@ live-love的accepted answer,并同意该方法。
但是,根据the latest Google Services library version更正依赖项可能更为精确。
就我而言,是在我刚刚向应用程序添加/激活Firebase服务时发生的。
您需要在Project和Gradle应用程序中遵循最新版本。
app/build.gradle
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
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'
//Android Support Design Library
implementation 'com.android.support:design:27.1.1'
//RecyclerView
implementation 'com.android.support:recyclerview-v7:27.1.1'
// Support multidex
implementation 'com.android.support:multidex:1.0.3'
// Firebase Core
// implementation 'com.google.firebase:firebase-core:16.0.1'
//Firebase Authentication
implementation 'com.google.firebase:firebase-auth:19.3.1'
// Firestore Firestore
implementation 'com.google.firebase:firebase-firestore:21.4.3'
implementation 'com.google.firebase:firebase-analytics:17.2.2'
// glide
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
// Circle ImageView
implementation 'de.hdodenhof:circleimageview:2.2.0'
}
apply plugin: 'com.google.gms.google-services'
build.gradle
dependencies {
classpath 'com.android.tools.build:gradle:3.5.3'
classpath 'com.google.gms:google-services:4.3.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
别忘了再次同步Gradle。
答案 9 :(得分:1)
ML Kit库在最新版本中存在版本控制问题。
Google Play服务库依赖项在准确的版本错误(由google-services插件抛出)上依赖于另一个
这是解决方案的链接。 https://firebase.google.com/support/release-notes/android#bom_v25-8-0
答案 10 :(得分:1)
在项目的build.gradle中添加以下行(请参见下图)
classpath 'com.google.gms:google-services:4.3.3'
然后通过以下步骤更新与Firebase相关的软件包:
文件>项目结构>依赖关系>应用
将Firebase模块更新到最新版本(请参见下图)
我正在使用:
implementation 'com.google.firebase:firebase-database:19.3.0'
implementation 'com.google.firebase:firebase-auth:19.3.1'
implementation 'com.google.firebase:firebase-messaging:20.1.7'
implementation 'com.google.firebase:firebase-core:17.4.0'
implementation 'com.google.firebase:firebase-storage:19.1.1'
implementation 'com.google.firebase:firebase-analytics:17.2.2'
别忘了添加:
apply plugin: 'com.google.gms.google-services'
请参阅下面我模块的build.gradle文件。
答案 11 :(得分:1)
对我来说,可行的解决方案是删除“ firebase-auth”并添加“ firebase-core”依赖项。但是在重建了几个项目之后,我开始遇到另一个编译问题,因此,除了“ firebase-core”之外,我还必须添加“ firebase-auth”依赖项才能使其正常工作:
implementation 'com.google.firebase:firebase-auth:19.0.0'
implementation 'com.google.firebase:firebase-core:17.0.1'
implementation 'com.firebaseui:firebase-ui-auth:4.3.1'
答案 12 :(得分:1)
将FCM添加到您的应用程序中,添加了较低的依赖性,然后我将依赖性更改为此问题已解决的最新版本。
compile 'com.google.firebase:firebase-messaging:17.3.4'
到
implementation 'com.google.firebase:firebase-messaging:20.0.0'
答案 13 :(得分:1)
将我所有的Google Play服务库更新为所有模块中的最新模块,为我解决了这个问题。我看不到您有任何Google Play服务库,但我想在这里把答案留给那些可能会觉得有用的人。
答案 14 :(得分:0)
存在与Google服务相关的错误,该错误最终在版本4.3.3
中得以修复。
因此您可以使用4.3.3或latest version (check here)
classpath 'com.google.gms:google-services:4.3.3' // or latest version
或降级到4.1.0
classpath 'com.google.gms:google-services:4.1.0'
答案 15 :(得分:0)
这是我的新鲜事,如果您的网络不安全,并且系统提示您输入不受信任的证书。
如果您接受或拒绝,它将给出此错误,直到您的网络不安全为止。
您可以通过选中设置-> Gradle->离线模式
来离线工作答案 16 :(得分:0)
如果使用了 song haesuk 答案,则需要在build.gradle项目(依赖项中的类路径)和build.gradle应用程序(实现)中都这样做。如果您更改导入到应用程序的任何库的版本,也请执行相同的操作。
我使用android studio提供的建议,它更改了实现,但没有更改依赖项,因此在构建过程中,两者之间存在冲突,并且给了我同样的错误。
答案 17 :(得分:0)
当我不小心将com.google.firebase:firebase-ml-vision
添加了不同版本两次时,我复制了该问题。
答案 18 :(得分:0)
我通过清除应用程序级别的依赖项块解决了它,仅保留了默认的Android依赖项,如下所示:
dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
implementation 'androidx.multidex:multidex:2.0.0'
}
答案 19 :(得分:0)
使用Google Services 4.2.0的known bug可能会导致这种情况。在项目的build.gradle中将google-services版本降级到4.1.0可能会解决问题
buildscript {
dependencies {
classpath 'com.google.gms:google-services:4.1.0' //decreased from 4.2.0
}
}
答案 20 :(得分:0)
谢谢,但是不幸的是,这并不完全适合我。我还必须将以下内容添加到我的build.grade(Module:app)
implementation 'com.google.android.gms:play-services-flags:16.0.1'
implementation 'com.google.android.gms:play-services-basement:16.0.1'
答案 21 :(得分:0)
This worked for me!
dependencies {
classpath "com.android.tools.build:gradle:3.4.2"
classpath "com.google.gms:google-services:4.3.3" // Need the latest here
}
dependencies {
...
// add the Firebase SDK for Google Analytics
implementation 'com.google.firebase:firebase-messaging:20.1.0'
implementation 'com.google.firebase:firebase-analytics:17.2.2'
...
}