我该如何匹配Google Play服务修订版本与安装版本?

24

今天早上,Android SDK Manager 通知我有一个新的 Google Play Services 发布版本可以下载:版本号为 18。那么我该如何找到对应的长版本号并将其放入 build.gradle 文件中呢?所有我的测试设备都运行着版本号为 5.0.84,因此我尝试进行更新。

compile 'com.google.android.gms:play-services:4.4.52'
compile 'com.google.android.gms:play-services:5.0.84'

但是这导致了一个错误:

Gradle 'MyApp' 项目刷新失败: Could not find com.google.android.gms:play-services:5.0.84. 必需由以下内容: {我的应用} Gradle 设置

我正在使用 Android Studio 0.5.2 并构建 API19 (我还没有升级到 Android L/API20): 这可能是问题吗?但通常来说,你如何将 SDK Manager 中显示的修订号码(例如18)与 build.gradle 的版本代码(例如5.0.84)匹配?

这是我的完整 build.gradle,请参考:

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

    // Avoid "Duplicate files copied in APK" errors when using Jackson
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }
}

dependencies {
    // Was "compile 'com.android.support:support-v4:+'" but this caused build errors when L SDK released
    compile 'com.android.support:support-v4:19.1.0'
    compile fileTree(dir: 'libs', include: ['*.jar'])

    // Support for Google Cloud Messaging
    // Was "compile 'com.android.support:appcompat-v7:+'" but this caused build errors when L SDK released
    compile 'com.android.support:appcompat-v7:19.1.0'
    compile 'com.google.android.gms:play-services:5.0.84'

    // Jackson
    compile 'com.fasterxml.jackson.core:jackson-core:2.3.3'
    compile 'com.fasterxml.jackson.core:jackson-annotations:2.3.3'
    compile 'com.fasterxml.jackson.core:jackson-databind:2.3.3'
}
2个回答

40

好的,我还没有完全找到它们之间的映射关系,但我做到了次优解,即查看在我的开发机上安装的 Play Services 长版本号列表。

对于 Windows,它在 [android-sdk]\extras\google\m2repository\com\google\android\gms\play-services 中 (其中 [android-sdk] 是您的 Android SDK 文件夹的路径)。

在 Mac 上,它在 Android.app 包内:浏览到 sdk/extras/google/m2repository/com/google/android/gms/play-services

我的计算机上的最新版本是 5.0.77(而不是 5.0.84),在我的 build.gradle 中放置这个版本可以正常工作。

下面是您应该在该位置看到的内容的样子:

Windows 上的 Google Play Services 版本

OSX 上的 Google Play Services 版本


3
是的,我刚开始转移到Android Studio,这有点令人困惑,因为我找不到浏览版本号的方法(是的,我被自动完成宠坏了)。但是,用“+”替换版本号应该总是选择最新版本。 - Suau
在MacOSX上,在使用Android Studio的SDK Manager验证正确的软件包已安装后,可以验证存储库包已安装,并在sdk目录下的Android Studio包内容中找到此目录结构。路径结构然后相同。还确认用加号替换版本号将删除当前和未来问题。 - Tommie C.
@Su-AuHwang 只使用 + 可能会产生意想不到的效果。最好像这样做:alias installed-play-services="ls ${ANDROID_HOME}/extras/google/m2repository/com/google/android/gms/play-services/",以便轻松检查您已安装了什么。 - Victor Häggqvist
@VictorHäggqvist 我通常会在编码中硬编码版本号,并且只在示例项目或开发早期使用+。我主要的抱怨是,构件和版本号的自动完成功能已经失效了。这很奇怪,因为在IntelliJ的gradle项目中它已经可以正常工作了。 - Suau

3

在我的项目中,我下载了Google Play服务,打开项目结构 > 依赖项选项卡,点击加号并选择Google Play服务。现在我不必再关心版本问题了。


2
这解决了我的错误。我移除了5.0.77并添加了5.0.88。这是项目结构窗口的截图:http://cl.ly/image/0O1f0b0G0j21。 - nicksuch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接