将Google Play服务版本添加到您的应用程序清单中?

90
我在按照这个教程进行: 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服务库更新和缺少符号@integer/google_play_services_version,但我仍然遇到相同的错误。请帮帮我?

如果Eclipse对此有问题,请尝试执行以下操作:https://dev59.com/LmIj5IYBdhLWcg3w04Up#19990244 - Kamil Szot
18个回答

101

很可能是您的库没有正确链接到项目,或者您使用了较旧的谷歌播放服务库版本,因此会出现冲突,并使Eclipse变得愚蠢..:S

不需要在integers.xml中添加任何内容。当您将Google-play-services库与项目引用正确链接时,android:value="@integer/google_play_services_version"将被找到,然后您就可以开始使用了。将库添加到项目中后,只需再进行一次清理操作,以便让有趣的Eclipse环境把事情处理干净。

如果您在某个地方硬编码了这个数字,在下一个Play版本发布时,您将需要更新它。如果您忘记了这一点,则需要再次花费时间寻找错误..:S

希望这有所帮助。;)


1
是的,在Android Studio中,我将Google Play服务添加为模块(而不是库),但我忘记将此模块添加到我的项目模块中,其中包含清单文件。这解决了问题 :) - Ragaisis
18
谢谢,这解决了我的问题。如果需要一个傻瓜式的逐步指南来在Eclipse / ADT中引用库项目,请参阅Google工具文档。我显然很蠢,因为我一直试图将库添加到“Java构建路径:库”下 - 没有起作用。 - Goffredo
抱歉回复晚了,但是是的,这就是问题所在,库没有正确地链接到我的项目中! - Adz
1
如何在Ant中实现呢? - Dzmitry Lazerka
2
如果有帮助的话,我在Android Studio中需要进行更多步骤。进入:项目结构-->应用程序-->依赖项-->点击+以添加库选项-->play-services(x.x.x)。当我重新构建并添加库时,出现了错误...0.0。我在SDK管理器的Extras下缺少Google Play存储库。当我回来重复这些步骤时,库现在有一个实际的版本号,并成功地重新构建了。 - natur3
显示剩余3条评论

36

我找到了解决方案。

  • 步骤1:在Package Explorer(Eclipse左侧)上右键单击您的项目
  • 步骤2:进入Android。
  • 步骤3:在“库”部分中添加库...(google-play-services_lib)
    请参见下面的按钮

    • 复制库项目

    <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/

    • 到保存Android应用程序项目的位置。 如果您使用Eclipse,请将库项目导入工作区。单击“文件”>“导入”,选择“Android”>“现有Android代码”,然后浏览到库项目的副本以导入它。
    • 点击这里获取更多信息。
  • 步骤4:单击应用
  • 步骤5:单击确定
  • 步骤6:从Package Explorer刷新您的应用程序。
  • 步骤7:您会看到错误已经消失了。

30

这里开始

你应该引用你复制到开发工作区的库的副本,而不是直接从Android SDK目录引用库。

我遇到了这个错误,因为我从SDK目录引用了原始副本。确保你首先将库复制到android工作区并且只引用它。在eclipse中,你可以在导入项目时勾选“将项目复制到工作区”。


3
哎呀呀,由于没有勾选这个框,浪费了好几个小时...很高兴我找到了这个答案!谷歌文档应该更加清晰明了。 - Marius Hilarious
这就是我的问题,除了谷歌库的源文件夹没有复制到我的工作区之外,其他所有东西都被正确引用了。 - JustADev
这个修复方法对我也有效。但是技术上有什么区别呢? - sivag1
谷歌应该在这里更新截图/说明:https://developers.google.com/+/mobile/android/getting-started - ban-geoengineering

22

在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方法限制的不必要冲击。像这样(例如针对地图)会比上面的一般play-services用法更好:

implementation 'com.google.android.gms:play-services-maps:12.0.0'

谢谢 - 这很有帮助。我正在尝试完成这个教程,遇到了这个错误,你的解决方案帮了我一个大忙:https://github.com/googledrive/android-demos - Simon
1
我只需要清理项目,在gradle同步之后,缺少的整数错误就消失了。这个也很有效:compile 'com.google.android.gms:play-services-appindexing:7.8.0' - Someone Somewhere
2
我知道这是一个老的问答,但人们仍然会遇到它,因此更新为新的AS3和Gradle API并强调使用特定库而不是整个包是有意义的。我希望原作者不介意。 - Ewoks

7
只需添加库引用,进入“属性” -> “Android”,然后添加库引用即可。
然后将其添加到你的“AndroidManifest.xml”中。
   <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

3

我在Android Studio 1.2.1.1中遇到了同样的问题。就像其他答案所说的那样,问题很简单,但是我找不到添加依赖项的位置。最后我在文件->项目结构->依赖项下找到了它。

这个菜单将让你选择将依赖项添加到Google Play服务库中的选项。


+1 感谢在 AS 1.2 中对晦涩导航的帮助。谢谢!在我的情况下,我正在处理从另一个开发人员那里移交的项目,并且从未实际使用 SDK 管理器安装正确版本的 Play 服务库 :$。一旦我下载/安装了该库,然后我回去删除/添加,编译错误就消失了。 - Anne Gunn

2

2

在我的情况下,我需要从SDK管理器中安装Google存储库。


1
我遇到了同样的错误;之前我已经安装了Google Maps的google-play-services_lib(它也正常工作),但当我稍后尝试在清单中添加meta-data条目时,我遇到了错误。我尝试了以上所有建议,但没有一种方法能够正确链接它们;最终我从项目中删除了链接(项目属性-Android,删除google-play-services_lib库),然后从Eclipse工作区中删除,删除磁盘上的文件,并最终使用SDK管理器从头重新安装。

这似乎最终解决了问题;现在Eclipse已经决定允许我留下meta-data条目而没有错误了。


我遇到了同样的错误,我的工作空间中的google-play-services库副本已经过时(因此不包含整数资源),将该库替换为更新版本即可解决问题。 - Bianca Daniciuc

0

将版本代码替换为库版本的适当代码即可解决您的问题,就像这样:

 <integer name="google_play_services_version"> <versioncode> </integer>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接