使用Gradle将Google Play服务添加到Android Studio

20

我正在开发一个简单的地图应用程序,我添加了google-play-services.jar并将其引用到gradle中。

dependencies {
    compile files('libs/android-support-v4.jar', 'libs/google-play-services.jar')
}

主要活动:

setContentView(R.layout.activity_mapui);

GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();

布局文件

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:name="com.google.android.gms.maps.MapFragment"/>

但是应用在设备上崩溃了。

E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source) at com.google.android.gms.maps.MapFragment.onInflate(Unknown Source)

我尝试了几种方法,但仍然出现同样的问题。我只想在使用Gradle 0.6+和Android Studio 0.3时添加Google服务。

9个回答

34

将这一行添加到您的build.gradle文件的dependencies部分:

compile 'com.google.android.gms:play-services:3.2.+'

你不需要将.jar文件添加到libs文件夹中。

编辑

正如Varun所指出的那样,您还需要更新SDK以包含最新版本的Play服务。

您可以通过从Eclipse + ADT打开Android SDK Manager(在Window选项卡下),勾选Extras文件夹中的Google Play服务旁边的框,并单击安装来完成此操作。


3
另外,还需要更新SDK以包含所需版本的 play-services,并从SDK管理器的extras部分安装support/google repository。 - Varun
8
如果您不需要2.2(用户基础的1.7%?)支持,并且使用2.3没有问题,那么应该使用更新的版本 compile 'com.google.android.gms:play-services:4.0.30' - Maciej Swic
我的Gradle提示依赖打包来定义主要构件的扩展已被弃用,因为这个规则。我还没有找到任何未被弃用的方法。 - Reza Mohammadi
我认为目前最新的Play服务版本是4.1。因此,你应该添加'com.google.android.gms:play-services:4.0.+'。 - IgorGanapolsky
5
使用“compile 'com.google.android.gms:play-services:4.+'”将提供4.x版本的Google Play服务。 - slott
我不会在每次发布新版本的 Google Play 服务时更新此答案。具体的版本号对答案的意图大多无关紧要。 - Matt Logan

27

在这里输入图片描述

在这里输入图片描述

对所有工具进行命中检查,以确保安全

在这里输入图片描述

对你正在使用的API进行命中检查

在这里输入图片描述

对所有附加组件进行命中检查,以确保安全

在这里输入图片描述

转到文件->项目结构

在这里输入图片描述

在这里输入图片描述

在这里输入图片描述

最后,在屏幕顶部转到build并点击rebuild project


3
我无法在库依赖中找到“com.google.android.gms:play-services”。 - jul
你从SDK Manager下载了Google支持库吗? - AndyRoid
1
这真是太有用了,伙计!两件事帮了我大忙:
  1. 在 SDK 管理器 - Extras 中勾选所有框。
  2. 通过 GUI 将位置服务依赖项添加到应用程序模块 gradle 构建中。 感谢你的帮助,伙计!
- Himadri Pant
如果您能够粘贴一些代码,那就太好了。 - Oliver Dixon

22

像@Matt所说的那样,这是正确的,我也被包含在内了,这一点在答案中没有提到。

要在您的应用程序项目中添加Google Play服务库,请按照以下步骤进行:

1)打开您的应用程序模块目录下的build.gradle文件。请参见屏幕截图

Screenshot

2)在您的依赖项中添加新版本,每次更新Google Play服务时都需要更新版本号。

dependencies {
    ...
    compile 'com.google.android.gms:play-services:4.2.42'
    compile files('src/main/libs/gson-2.2.4.jar')

}

3) 最后重要的一步是保存文件,并在工具栏中点击与Gradle文件同步Icon


1
我如何知道依赖项的最新版本?它可能已经改变了,还是仍然是4.2.42? - Leo
@Leo https://mvnrepository.com/artifact/com.google.android.gms/play-services-locationhttps://developers.google.com/android/guides/setup - AturSams

14

这个方法对我没用,我需要在Android SDK管理器的“Extras”中下载Google存储库才能解决问题。


3

尽可能避免在使用多个库时同时包含整个Google Play服务,否则会出现 Multidex异常:

.dex文件中的方法引用数量不能超过64k。

因此,最好的方法是:

compile 'com.google.android.gms:play-services-maps:9.8.0'

如果您希望包含其他服务,请参考以下链接:

https://developers.google.com/android/guides/setup(向下滚动页面)


Imran,我正在使用compile 'com.google.android.gms:play-services-maps:9.8.0',但是出现了错误。请通过更新google-services的版本来解决版本冲突。请帮忙。 - Thripthi Haridas

1

打开Android SDK管理器,进入Extras选项,选择Google Play服务和Google Repository,然后点击“安装包...”按钮。

在编辑器中的代码窗口中单击“build.gradle”文件,然后单击“重试”链接按钮...

等待gradle构建完成。


0

前往您的 Android 测试手机设置 -> 应用程序,搜索 Google Play 服务并单击它,在那里您将找到安装在设备上的版本号。

For me it was 9.6.83

然后只需将您的版本号添加到以下命令中:

compile 'com.google.android.gms:play-services:9.6.83'

  • 将此添加到您的build.gradle(app)中

  • Gradle同步

稍后,您可能会收到gradle错误,指出需要安装特定存储库,请下载它!恭喜您,下一个gradle同步成功了。


0
将以下代码添加到您的应用 gradle 文件中的 dependency 块中:

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


2
增加关于在哪个文件中添加此内容的详细信息会更有帮助。请编辑。 - Gibolt

0
在你的Android项目中添加Google Play服务广告及其功能
  • 打开你的Android Studio build.gradle文件
  • 在依赖项中添加Google Play服务
  • implementation 'com.google.android.gms:play-services-ads:20.5.0'
  • 同步你的build.gradle文件

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