【问题标题】:Where is com.google.android.gms?com.google.android.gms 在哪里?
【发布时间】:2013-02-24 22:10:47
【问题描述】:

今天我将 Android SDK 组件更新到了最新版本,不知何故整个 com.google.android.gms 包都不见了。相反,只有 com.google.android.maps 的类与 gms 包中的类不同。这是谷歌的重大变化还是我做错了什么?我一直在使用 GoogleMap 和 LatLng 类来处理谷歌地图,现在我的项目中出现了错误。

【问题讨论】:

  • 您之前使用的是哪个版本的 sdk? (如果你还记得的话)
  • android:minSdkVersion="8" android:targetSdkVersion="17" 现在我刚刚更新了最新版本:Android SDK tools rev.21, Android platform-tools rev.16.0.2, Android支持库 rev.12、GooglePlayServices rev.5 和 API 17,16 等的其他一些修订。我刚刚更新了所有内容。此外,必须更新 ADT 工具才能使用 SDK 更新
  • 您在应用程序中使用 GoogleMap v1 吗?
  • 不,我使用的是 GoogleMap v2。我在 AndroidManifest 中有 API 密钥。在这个愚蠢的更新之前一切正常
  • 这个问题解决了吗?我刚刚更新,我卡住了。

标签: android google-play-services google-maps-android-api-2


【解决方案1】:

这是 Google 的重大变化还是我做错了什么?

com.google.android.gms 来自 Play Services SDK,您可以将其作为 Android 库项目附加到您的应用程序项目中。请检查您的环境以确保您拥有 Play Services 库项目的有效副本,并且您的应用程序项目仍然指向它。

【讨论】:

  • 知道这个包名包含 gms 而不是 gps 吗?它是否来自前 google-play 时代?
  • @ddewaele Play 商店以前被称为 Android 市场,所以我猜这就是“m”的来源。更改它会破坏导入,并且可能还会导致与 GPS 的不必要混淆。
  • @ddewaele,实际上 gms 来自“Google 移动服务”(请参阅​​ android.com/gms)了解更多信息
【解决方案2】:

首先,如果您没有使用 Android SDK 管理器运行任何更新,请确保 google-play-services-lib' 项目在 eclipse 中打开。如果这不能解决您的问题,请继续。注意:eclipse(v22.0.1-685705) 将使用“关闭无关项目”命令关闭 google-play-services-lib 项目。 google-play-services-lib 项目必须打开。

我发现了这个问题。最初,你/我直接从 SDK Path 中安装了 Eclipse 中的 Google Play 服务(SDK Path 显示在 Android SDK Manager 的左上方)。当您使用 Android SDK 管理器更新 Google Play 服务时,它删除了 .project 文件,现在 eclipse 找不到“google-play-services-lib”项目,并且您的开发项目无法编译。 :-(

解决方案:

此解决方案的基本理想是在 Eclipse 中清除旧的“google-play-services-lib”项目,该项目现已失效,并使用从 SDK 路径复制的项目安装一个新项目。

删除旧项目:

在 Eclipse 中删除任何“google-play-services-lib”项目。 (在 Eclipse 中,请参阅:项目属性-> Android -> 库。)

在 Eclipse 中,请参阅:项目属性-> Android -> 库删除“google-play-services-lib”项目的旧条目。这很可能有一个红色的“X”。

安装一个新的:

按照 Google 的说明安装“google-play-services-lib”项目。这些指令指定将项目从 SDK 安装文件夹中复制出来;然后是如何设置项目。

http://developer.android.com/google/play-services/setup.html

注意事项:

您的“google-play-services-lib”名称可能不同。

要记住的关键是 Google Play 服务不是 jar 文件。这是eclipse中的一个项目。您的开发项目引用了 google-play-services-lib 项目。

通过将项目文件夹从 SDK 路径复制到另一个位置,这将防止 Android SDK 管理器删除您的 eclipse .project 文件并导致此问题。缺点是如果您想更新 google play 服务,您必须记住再次执行所有步骤。

【讨论】:

  • @fishid 感谢您对主题进行了相当深入的讨论,并提供了完整的答案。
【解决方案3】:

您将需要 Google Play 服务 sdk。如果您使用 sdk for eclipse,您可以从 Android SDK Manager 安装它。
安装 Google Play 服务后,您可以从 ..\sdk\extras\google\google_play_services 文件夹将库项目导入您的 Workspace。清理并构建它。
现在您可以转到有问题的项目的属性并在 Android 部分选择库项目。
这应该可行!

【讨论】:

    【解决方案4】:

    当前库位于 Google 存储库中。要启用它,请确保您已使用 Android SDK Manager 下载它(一直到列表的最底部)。

    【讨论】:

      【解决方案5】:

      对于android create project [...]基于ant CLI的项目

      类似于:How to correctly include the support library in non-Eclipse Android application

      我能找到的最好的是https://stackoverflow.com/a/30689979/895245

      1. 复制粘贴android-sdk/extras/google/google_play_services/libproject/google-play-services_lib目录到项目目录中
      2. cd 进入并运行 android update project -p . -t android-22
      3. <property name="android.library.reference.1" value="./google-play-services_lib"/> 添加到您的build.xml

      您可以使用android GUI 工具或使用此 CLI 方法安装 extras:Downloading the Android support library from command line

      如果您只是将.jar 复制粘贴到项目的libs/ 目录下的<sdk>/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar 中,它会编译但在运行时中断,因为所需的res/values/version.xml 未包含在.jar 中。

      【讨论】:

        【解决方案6】:

        如果使用 Android Studio,您可以通过向 build.gradle 文件添加依赖项来添加 Google Play 服务以使用 Google Android Maps v2。

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

        【讨论】:

          猜你喜欢
          • 2012-07-25
          • 1970-01-01
          • 1970-01-01
          • 2010-09-21
          • 2012-10-05
          • 1970-01-01
          • 1970-01-01
          • 2014-11-24
          • 1970-01-01
          相关资源
          最近更新 更多