【发布时间】:2017-03-22 12:01:10
【问题描述】:
我正在尝试在我的应用启动时确定 Google Play 服务的正确性。所以我包括
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability;
进入我的主要活动文件。 然后我:
- 通过 Android SDK 管理器安装了 Play 服务(和 here 所述的 Google 存储库);
- 将
compile 'com.google.android.gms:play-services:10.+'放入我的build.gradle -
添加
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />进入 AndroidManifest.xml
但是当我试图编译项目时,我得到了这个错误:
Error: No resource found that matches the given name (at 'value' with value '@integer/google_play_services_version')
我发现解决它的一种方法是将 google-play-services_lib 复制到我的项目文件夹中,然后将指向它的链接添加到 project.properties 文件中。但我在 sdk/extras/google/google_play_services 中只有 /docs 和 /samples 文件夹。根本没有这样的 google-play-services_lib! 我不使用任何 IDE,我的项目是从 CMake 文件构建的,所以任何 IDE 插件都不适合我...
我该如何解决这个问题?
谢谢!
【问题讨论】:
-
您需要清单合并流程来解决您的问题。当您使用 Gradle 作为构建系统时,可以从 Android Plugin for Gradle 获得。欢迎您查看其他构建系统(例如 Buck)如何处理此问题,并了解如何升级基于 CMake 的构建系统以匹配。 “我发现解决它的一种方法是将 google-play-services_lib 复制到我的项目文件夹中,然后将指向它的链接添加到 project.properties 文件中”——这是一个遗留的 Eclipse 解决方案,谷歌不再支持。
-
@CommonsWare 你能否提供一些关于清单合并如何解决我的问题的链接或解释?现在我根本不知道要搜索什么......
-
@CommonsWare 也许我已经为人类迷失了方向,但我不明白清单合并对我有什么帮助。我试过
<uses-library android:name="com.google.android.gms.play-services" android:required="true" />但没有成功。 -
“我不明白清单合并对我有什么帮助”——图书馆有自己的清单。 Play Services 库有一个缺少
<meta-data>元素的清单,以及您缺少的许多其他内容。实现清单合并的构建系统将从所有相关清单中获取内容并将它们合并在一起。您选择的构建系统没有。最有可能的答案是您不使用 Play Services。 “我试过……”——这与 Play Services 或大多数其他库无关。这适用于制造商提供的固件库。
标签: android google-play-services