将 Google Play 服务版本添加到您的应用清单?
Posted
技术标签:
【中文标题】将 Google Play 服务版本添加到您的应用清单?【英文标题】:Adding Google Play services version to your app's manifest? 【发布时间】:2013-11-21 16:33:32 【问题描述】:我正在关注本教程:https://developers.google.com/maps/documentation/android/start#overview 关于如何将 Google 地图添加到 Android SDK 中的应用程序。
我似乎遇到的唯一问题是在这段时间(我已经完成了其他所有操作,没有任何错误):
Edit your application's AndroidManifest.xml file, and add the following declaration within the
<application> element. This embeds the version of Google Play services that the app was compiled with.
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
The error is:
No resources found that match the given name (at 'value' with value '@integer/
google_play_services_version').
我试图按照这个人的解决方案来解决同样的问题:Google Play Services Library update and missing symbol @integer/google_play_services_version
但我仍然遇到同样的错误。有什么帮助吗?
【问题讨论】:
如果 Eclipse 给您带来麻烦,请尝试这样做:***.com/a/19990244/166921 【参考方案1】:可能是您的库未正确链接到项目,或者您的 google-play-services 库版本较旧,因此出现冲突并且 Eclipse 变得愚蠢..:S
不,您不需要在 integers.xml 中添加任何内容。当您正确地将 Google-play-services 库链接到您的项目参考 android:value="@integer/google_play_services_version"
时,您将可以开始使用。当您将库添加到您的项目时,只需再做一个干净而有趣的 Eclipse 环境就可以正确地清除一些东西。
如果您在下一个游戏版本到来时将这个数字硬编码到某个地方,您需要更新它。如果你忘记了,你将再次花时间寻找错误..:S
希望它有所帮助。 ;)
【讨论】:
是的,在 android studio 上,我已将 google play 服务添加为模块(而不是库),但我忘记将此模块添加到清单文件所在的项目模块中。这解决了问题:) 谢谢,这解决了我的问题。有关在 Eclipse / ADT 中引用库项目的防白痴分步指南,请参阅the Google Tools docs。我显然是个白痴,因为我试图在“Java Build Path : Libraries”下添加库 - 没用。 抱歉回复晚了,但是是的,这是问题所在,库没有正确链接到我的项目! 如何为 Ant 做到这一点? 如果有帮助,我必须在 Android Studio 中采取更多步骤。转到:项目结构->应用程序->依赖项->单击+为库添加选项->播放服务(x.x.x)。重建时出现错误,添加的库是 play-services...0.0。我错过了 Extras 下 SDK 管理器中的 Google Play 存储库。当我回来并重复这些步骤时,图书馆现在有了一个实际的版本号并成功重建。【参考方案2】:我得到了解决方案。
第 1 步:在 Package Explorer 中右键单击您的项目(Eclipse 中的左侧) 第 2 步:转到 Android。第 3 步:在库部分添加库...(google-play-services_lib) 见下图
将库项目复制到<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/
【讨论】:
【参考方案3】:来自here
您应该引用您复制到的库的副本 你的开发工作区——你不应该引用这个库 直接从 Android SDK 目录。
我遇到了这个错误,因为我引用了 SDK 目录中的原始副本。确保首先将库复制到 android 工作区并仅引用它。在 Eclipse 中,您可以通过在导入项目时选中“将项目复制到工作区”来做到这一点。
【讨论】:
aiaiai,因为没有勾选这个框而浪费了几个小时......很高兴我找到了这个答案!应该在 Google 文档中更清楚。 这是我的问题,除了 google lib 的源文件夹未复制到我的工作区之外,所有内容都按照应有的方式引用 这个修复也对我有用。但想知道在技术上有何不同? Google 应该在此处更新屏幕截图/说明:developers.google.com/+/mobile/android/getting-started【参考方案4】:在 Android Studio 中,您只需将其添加到 Gradle 文件即可解决此问题:
compile 'com.google.android.gms:play-services:6.5.87'
编辑
现在,由于更新和新的 Gradle API,您应该使用的行是:
implementation 'com.google.android.gms:play-services:12.0.0'
一个更重要的提示:避免使用捆绑版本的 Google Play 服务,但考虑只声明您的应用需要的依赖项以减小其大小,并将不必要的命中减少到 65k 方法限制。类似的东西(即对于地图)这会比上面的一般播放服务使用更好:
implementation 'com.google.android.gms:play-services-maps:12.0.0'
【讨论】:
谢谢 - 这有帮助。我正在尝试执行本教程并遇到此错误,您的解决方案帮助了我:github.com/googledrive/android-demos 我只需要在 gradle 同步之后清理项目,丢失的整数错误就消失了。这也很好用:compile 'com.google.android.gms:play-services-appindexing:7.8.0'
我知道这是一个旧的 Q/A,但人们仍然在偶然发现它,因此将其更新为新的 AS3 和 Gradle API 并强调使用特定库而不是整个包的冲动是有意义的.希望原作者不要介意【参考方案5】:
只需添加库引用,转到Propertes
-> Android
,然后添加库。
那就加你AndroidManifest.xml
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
【讨论】:
【参考方案6】:我在 Android Studio 1.2.1.1 中遇到了同样的问题。就像其他答案所说的一样,但是,我无法找到添加依赖项的位置。最后我在File->Project structure->Dependencies下找到了 此菜单将为您提供将依赖项添加到 Google Play 服务库的选项。
【讨论】:
+1 获取有关 AS 1.2 中晦涩导航的帮助。谢谢!在我的情况下,我正在处理从另一个开发人员移交的项目并且从未使用 SDK 管理器实际安装正确版本的播放服务库并没有帮助:$。一旦我下载/安装了库,然后我返回并再次删除/添加,编译错误就消失了。【参考方案7】:尝试按照本文档中的说明安装 4.0.30:http://developer.android.com/google/play-services/setup.html
【讨论】:
【参考方案8】:就我而言,我必须从 SDK 管理器安装 google 存储库。
【讨论】:
【参考方案9】:我遇到了同样的错误;我之前已经为谷歌地图安装了 google-play-services_lib(它工作正常),但是当我后来尝试将元数据条目添加到我的清单时,我得到了错误。我尝试了上述所有建议,但没有任何方法可以正确链接它们;我终于从我的项目中删除了链接(project-properties-Android,删除了google-play-services_lib库),然后从Eclipse工作区中删除,删除了磁盘上的文件,最后使用SDK管理器从头开始重新安装。
这似乎终于成功了;现在 Eclipse 已决定允许我不出错地保留元数据条目。
【讨论】:
我遇到了同样的错误,我的工作区中的 google-play-services 库的副本是旧的(因此不包含整数资源),并且用更新的版本替换库就可以了。 【参考方案10】:您可以更改工作区,然后修复该问题,然后将已修复的项目导入回您的主工作区。此外,这 4 个步骤应该是为了希望它在未来对某人有所帮助。
【讨论】:
【参考方案11】:当您下载了新版本的 Google Play 服务但未安装最新的 SDK 时,也会发生此错误。这就是发生在我身上的事。因此,正如其他人提到的,如果您尝试导入 Google Play 服务然后打开控制台,您将看到编译错误。如果是这种情况,请尝试安装所有最新的 Android SDK,然后重试。
【讨论】:
【参考方案12】:我做了以下步骤来恢复:
1) 将 google play 服务作为项目导入您的 android sdk。在我的系统中,它位于 C:\adt-bundle-windows-x86_64-20140702\sdk\extras\google\google_play_services\libproject\google-play-services_lib
2) 你的 android 应用程序-> 属性 -> android
在窗口中
2.1) 在项目构建目标中点击 Google APIs 2.2)在底部框架添加google-play服务并点击OK
希望它能给出明确的指示!!
谢谢。
【讨论】:
【参考方案13】:就我而言,我需要将 google-play-services_lib 文件夹复制到我的应用程序源代码的同一驱动器中
F:\Products\Android\APP*.java F:\Products\Android\libs\google-play-services_lib【讨论】:
【参考方案14】:只需从项目中删除 google play services 库并从sdk->extras->google
文件夹中再次添加即可完美解决我的问题。
【讨论】:
【参考方案15】:就我而言,我只需重新启动 Eclipse 即可。
我已经工作了 2 周而没有关闭它,我认为它出了问题。
感谢 Ewoks 的建议!
【讨论】:
【参考方案16】:用适当的库版本代码替换版本代码将解决您的问题,如下所示:
<integer name="google_play_services_version"> <versioncode> </integer>
【讨论】:
【参考方案17】:可以直接作为
android:value="6587000"
代替
android:value="@integer/google_play_services_version"
干杯。
【讨论】:
请参阅上面已接受的答案 (***.com/a/20068489/165164),了解为什么这是一个坏主意。【参考方案18】:您需要将“integers.xml”文件添加到项目的“res/values”文件夹中。文件的内容应该是..
<resources>
<integer name="google_play_services_version">4030500</integer>
</resources>
【讨论】:
永远不要那样做,它不是动态的。 这完全是错误的做法。请参阅 Ewoks 的回答,***.com/a/20068489/1450294以上是关于将 Google Play 服务版本添加到您的应用清单?的主要内容,如果未能解决你的问题,请参考以下文章
Google 开发者控制台中的“我们检测到您的应用正在使用旧版本的 Google Play 开发者 API”警告是啥?
将 Play 游戏服务 SDK 添加到您的生产 APK 以使用 API
错误记录Google Play 上架报错 ( 我们检测到您的应用程序包含未经认证的广告SDK或未经批准用于儿童导向服务的SDK )