Mar*_*ark 4 android firebase google-play-services android-gradle-plugin android-8.0-oreo
我正在尝试更新我的Android O应用程序,并且这样做需要更新以支持库26.
我的compileSdkVersion是26,targetSdkVersion 26,buildToolsVersion 26.0.1,支持库版本是26.0.1,播放服务/ firebase消息是11.0.4.我正在使用Android Studio 3.0 b2和android gradle插件3.0.0-beta2.看来这个版本对支持库冲突更加敏感.
我必须手动排除支持依赖项以解决冲突,因为播放服务和firebase链接对旧版本的支持库:
implementation("com.google.android.gms:play-services-auth:$playServicesVersion",{
exclude group: 'com.android.support'
})
implementation("com.google.android.gms:play-services-identity:$playServicesVersion",{
exclude group: 'com.android.support'
})
implementation("com.google.android.gms:play-services-base:$playServicesVersion",{
exclude group: 'com.android.support'
})
implementation("com.google.android.gms:play-services-analytics:$playServicesVersion",{
exclude group: 'com.android.support'
})
implementation("com.google.firebase:firebase-messaging:$playServicesVersion",{
exclude group: 'com.android.support'
})
implementation("com.google.firebase:firebase-analytics:$playServicesVersion",{
exclude group: 'com.android.support'
})
Run Code Online (Sandbox Code Playgroud)
这修复了我的所有依赖冲突,除了一个.
Google Play服务/ Firebase需要使用google-services gradle插件来解析生成的.json文件,并在应用中包含必要的密钥/秘密.我的build.grade有一个buildcript块,如下所示:
buildscript {
repositories {
maven { url "https://maven.google.com" }
jcenter()
}
dependencies {
classpath "com.google.gms:google-services:3.1.0"
}
}
Run Code Online (Sandbox Code Playgroud)
在脚本的最后,我应用插件.随着apply和classpath被注释掉,一切都正确编译.但是,似乎google-services 3.1.0增加了对支持库版本25.2.0的依赖,而我无法弄清楚如何覆盖它.消息是:
- 出了什么问题:任务':app:preDevelopmentDebugBuild'执行失败.
Android依赖项"com.android.support:support-v4"具有不同版本的编译(25.2.0)和运行时(26.0.1)类路径.您应该通过DependencyResolution手动设置相同的版本
请注意,我甚至无法降级到支持库25.4.0,因为我得到了相同的错误(只需用25.4.0替换上面的消息中的26.0.1).唯一有效的版本是25.2.0
运行./gradlew app:dependencies包含类路径依赖项,给我这个:
compile - Compile dependencies for 'main' sources (deprecated: use 'implementation' instead).
\--- com.google.firebase:firebase-core:11.0.4
\--- com.google.firebase:firebase-analytics:[11.0.4] -> 11.0.4
+--- com.google.firebase:firebase-analytics-impl:[11.0.4] -> 11.0.4
| +--- com.google.android.gms:play-services-basement:[11.0.4] -> 11.0.4
| | \--- com.android.support:support-v4:25.2.0
| | +--- com.android.support:support-compat:25.2.0
| | | \--- com.android.support:support-annotations:25.2.0
| | +--- com.android.support:support-media-compat:25.2.0
| | | +--- com.android.support:support-annotations:25.2.0
| | | \--- com.android.support:support-compat:25.2.0 (*)
| | +--- com.android.support:support-core-utils:25.2.0
| | | +--- com.android.support:support-annotations:25.2.0
| | | \--- com.android.support:support-compat:25.2.0 (*)
| | +--- com.android.support:support-core-ui:25.2.0
| | | +--- com.android.support:support-annotations:25.2.0
| | | \--- com.android.support:support-compat:25.2.0 (*)
| | \--- com.android.support:support-fragment:25.2.0
| | +--- com.android.support:support-compat:25.2.0 (*)
| | +--- com.android.support:support-media-compat:25.2.0 (*)
| | +--- com.android.support:support-core-ui:25.2.0 (*)
| | \--- com.android.support:support-core-utils:25.2.0 (*)
| +--- com.google.firebase:firebase-iid:[11.0.4] -> 11.0.4
| | +--- com.google.android.gms:play-services-basement:[11.0.4] -> 11.0.4 (*)
| | \--- com.google.firebase:firebase-common:[11.0.4] -> 11.0.4
| | +--- com.google.android.gms:play-services-basement:[11.0.4] -> 11.0.4 (*)
| | \--- com.google.android.gms:play-services-tasks:[11.0.4] -> 11.0.4
| | \--- com.google.android.gms:play-services-basement:[11.0.4] -> 11.0.4 (*)
| +--- com.google.firebase:firebase-common:[11.0.4] -> 11.0.4 (*)
| \--- com.google.android.gms:play-services-tasks:[11.0.4] -> 11.0.4 (*)
+--- com.google.android.gms:play-services-basement:[11.0.4] -> 11.0.4 (*)
\--- com.google.firebase:firebase-common:[11.0.4] -> 11.0.4 (*)
Run Code Online (Sandbox Code Playgroud)
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '26.0.1'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
像这样,您的支持库应该使用相同的版本进行编译.只需将模块级Gradle构建脚本中的代码段添加到依赖项中.
| 归档时间: |
|
| 查看次数: |
4734 次 |
| 最近记录: |