【问题标题】:Is it safe to compile with an older version of Google Play Services?使用旧版本的 Google Play 服务进行编译是否安全?
【发布时间】:2015-04-06 20:26:30
【问题描述】:

我喜欢尽可能地了解库的最新情况,但在一年前开始的一个项目中,我使用的是 Eclipse,并且正在使用 Google Play Service for Froyo。我最近开始使用 Android Studio,当然现在有很多损坏的代码,因为我最初使用的是最新版本的 Google Play 服务。

为了修复它,我基本上为 Froyo Eclipse 项目导入了旧的 Google Play 服务,并将其作为我引用的 Android Studio 中的一个模块。我不一定需要图书馆的新功能,它正在工作。这是我的问题:这样做安全吗?我不希望这在较新的设备上影响到我。

【问题讨论】:

    标签: android android-studio google-play-services


    【解决方案1】:

    所有较新版本的 Google Play 服务(应用)都向后兼容所有以前版本的 SDK,这意味着即使在每台设备上更新 Google Play 服务,使用旧 SDK 编译的代码也将继续工作。

    请注意,“Froyo 的 Google Play 服务”实际上只是支持 Froyo 的最后一个 Google Play 服务版本 - 3.2.65(它是 Google Play services 4.0,它放弃了对 Froyo 的支持)。如果您使用的是 Gradle,您仍然可以在 build.gradle 文件中引用它,而无需将其作为模块导入:

    dependencies {
      compile 'com.google.android.gms:play-services:3.2.65'
    

    }

    您可以通过查看{android-sdk}/extras/google/m2repository/com/google/android/gms/play-services 目录查看通过 Gradle 提供的 Google Play 服务版本的完整列表,该目录当前列出了以下版本:3.1.363.1.593.2.253.2.65、@ 987654332@、4.1.324.2.424.3.234.4.525.0.896.1.116.1.716.5.877.0.0

    您应该强烈考虑逐步解决每个版本中出现的问题,因为每个版本都有大量的修复。特别是,Google Play services 6.5 提供了selectively include APIs 的功能,因此您的应用程序只包含您实际使用的 API。

    【讨论】:

    • 我将不得不尝试将版本放入我的 build.gradle 文件中。抱歉,我是 Gradle 和 Android Studio 的新手,不知道我能做到这一点。
    • 没问题! Eclipse 从未真正明确表明存在不同版本的 Google Play 服务——它只是支持 Froyo 的最新版本和最新版本。 Gradle 使您能够准确地选择您需要的版本,并且从那时起它就会起作用(更新您的 SDK 不会改变您的依赖关系) - 让您可以控制何时迁移到新版本。
    • 我不得不说这不是真的。我将“com.google.android.gms:play-services:7.5.0”更新为“com.google.android.gms:play-services:9.4.0”并且我的模拟器停止支持该应用程序。必须扭转这一点以确保与模拟器的向后兼容性,所有真实设备似乎都很好,但它们需要更新。
    • @HopefullyHelpful - 你在谈论更新你的依赖。这是与这个问题完全不同的主题,具体是关于 not 更新您的依赖项
    • @FilipeEsperandio - 这意味着他们需要 9.4.0 或更高版本。
    猜你喜欢
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    相关资源
    最近更新 更多