【问题标题】:Why is my Google Play Services version incorrect?为什么我的 Google Play 服务版本不正确?
【发布时间】:2018-08-20 21:25:07
【问题描述】:

今天我一直在更新我的项目,并从使用 Android.Locations API 迁移到使用 Google Play LocationServices API 和 FusedLocationProviderClient 来获取位置更新。我更新到最新版本的GooglePlayServices API(Base、Basement、Location、Maps、Tasks)并通过 SDK 管理器更新了我本地版本的 GooglePlayServices。

当我尝试使用 GooglePlayServices API 的一部分(例如 FusedLocationProviderClient)时,我收到以下消息:

Java.Lang.RuntimeException: The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 11400000 but found 8487000. You must have the following declaration within the <application> element: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />

但我有:

<meta-data android:name="com.google.android.gms.version" 

android:value="@integer/google_play_services_version" />

在我的AndroidManifest.xml 中用于我的项目。

这可能是什么问题?

【问题讨论】:

  • @Mohsen 不幸的是,那里的两个答案并没有解决我的问题。我的元数据声明没有嵌套,我只是在设备上完全卸载并清理了项目。
  • @ʍѳђઽ૯ท 另外,Mohsen,我不确定您为什么从这个问题中删除了 Xamarin.Android 标记。可能这个问题与 Xamarin.Android 完全相关,我错过了整个社区,因为该标签不存在。这是在 Xamarin.Android 之上构建的,因此是 Microsoft 的预编译,并且肯定是相关的。
  • 在打开一个新线程/问题时,您总是最好提及 什么 IDE 或平台。在这里,我假设您使用的是 Android Studio,它是大多数人的原生 IDE,因此,我决定删除 xamarin 标签,我认为它仍然与 Xamarin 无关。无论如何。现在够清楚了吧?!另外,请粘贴整个 Manifest 以检查是否有错误,您可以提及您正在使用的 IDE 或平台。

标签: android xamarin.android google-play-services android-manifest


【解决方案1】:

您不必提及 gms 版本,因此请从清单中删除这些行:

<meta-data android:name="com.google.android.gms.version" 
    android:value="@integer/google_play_services_version" />

只需包含地图和其他服务的 api 密钥,它应该可以正常工作:

<meta-data android:name="com.google.android.geo.API_KEY"
        android:value="@string/google_maps_key" />

这将找到并向清单添加值,但如果您没有使用 api 密钥创建文件,它将不存在。因此,您必须从控制台创建 api 密钥并将它们存储在应用程序的文件中。 Here 是这样做的指南。

还可以查看this 指南,了解如何在您的应用中设置单独的 Google Play 服务。

【讨论】:

  • 感谢您的回复,但这无济于事。我在清单中明确声明了我们的 Google Maps API 密钥,因此它不是“@string/google_maps_key”,而是密钥的实际值。多年来,这一直完美无缺。即使我删除了第一行,如您所说,我仍然收到错误消息,即应用程序的“AndroidManifest.xml 没有正确的值。预期为 11400000,但找到了 8487000。”我正在全面使用 Google Play Services 11.4.2;为什么我会出错?
【解决方案2】:

嗯,我找到了答案。我很尴尬,也不自豪,但我仍然应该为社区分享!虽然我对 Android 的上层有经验(通过 Xamarin),但我对 Resource 文件夹和 AndroidManifest.xml 等一些晦涩难懂的东西没有经验。无论如何,我应该知道我的AndroidManifest.xml@integer/google-play-services-version 中声明的值暗示该值是在我的项目中某处 声明的。果然,我发现它是在一个位置不明显的values.xml 文件中声明的。

它确实被硬编码为8487000,当我将其切换为11400000 时,一切都按预期工作。确保在发布 StackOverflow 帖子之前检查整个项目是这里的教训!

【讨论】:

    猜你喜欢
    • 2015-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多