【问题标题】:Android dependency issue with gms play servicesgms play服务的Android依赖问题
【发布时间】:2015-12-11 04:00:11
【问题描述】:

我收到一个错误,因为我尝试使用 Google 的应用程序索引库,同时还导入了一个库,该库将旧版本的 android gms 库用于不同的组件 - Google 的 cast 库播放服务。错误状态“所有 com.google.android.gms 库必须使用完全相同的版本规范(混合版本可能导致运行崩溃)。找到版本 8.30、7.80。示例包括 com.google.android.gms:play-servics- appindexing:8.3.0 和 com.google.android.gms:play-services-cast:7.8.0。 不知道如何解决这个问题,因为我无法更新我正在导入的 connecteddk 中使用的版本,并且我需要版本 8.3.0 来进行应用索引。我的gradle文件如下:

模块

android {

compileSdkVersion 23
buildToolsVersion "23.0.2"
useLibrary 'org.apache.http.legacy'

defaultConfig {
    applicationId xxx.xxx.xxx.xxx"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 10005
    versionName "1.0.5"
    multiDexEnabled true
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}


dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])
compile files('libs/commons-lang3-3.3.2.jar')
compile files('libs/universal-image-loader-1.9.3.jar')
compile 'com.android.support:multidex:1.0.1'
compile 'com.facebook.android:facebook-android-sdk:4.6.0'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.google.android.gms:play-services-appindexing:8.3.0'
compile 'com.google.android.gms:play-services-analytics:8.3.0'
compile ('com.connectsdk:connect-sdk-android:1.6.+')

**Project**:

 buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
        classpath 'com.google.gms:google-services:1.5.0-beta2'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
    }

allprojects {
    repositories {
        jcenter()

    }
}

【问题讨论】:

    标签: android gradle android-gradle-plugin libraries


    【解决方案1】:

    您始终可以告诉 Gradle 使用最新版本的依赖项;它会自动覆盖您的传递依赖项请求。例如,如果这是在您的build.gradle

    compile 'com.google.android.gms:play-services-cast:8.3.0'
    compile 'com.connectsdk:connect-sdk-android:1.6.0'
    

    即使 connect-sdk-android v1.6.0 使用 play-services-cast v7.8.0,您仍然会在最终构建中获得 8.3.0。

    也就是说,如果 Connect SDK 的库不适用于 8.3.0,那么在他们更新他们的库之前,您将陷入困境。在这种情况下,您可能需要通过 their library's issue page 将问题告知他们。

    【讨论】:

    • 感谢 Daniel,由于接口的更改,connectSDK 似乎与 8.3.0 不兼容。可能最终会切换到 Google 的 castComanionLibrary,因为来自 connect sdk 的响应非常慢。我猜不可能分别编译同一个库的两个不同版本?
    • @Jaz 你在这里做了什么?我有一个非常相似的问题;我的应用需要 Google Play Services 9.4.0,但我正在使用的库(出站 SDK)使用 9.2.0,我无法更新它的依赖项,但我不想仅仅因为它而被绑定到 9.2.0 .任何更新的想法将不胜感激!
    • 福雷斯特 我最终只是删除了 Connect SDK 并使用了 CastCompanionlibrary 和现在来自 Google 的新 Cast 库。不幸的是,我找不到 gms 库版本问题的解决方案,最后我检查了几个月前 Connect SDK 尚未更新到较新的 GMS 库。不确定是否有解决方案,但我已经厌倦了寻找。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    • 2013-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    相关资源
    最近更新 更多