创建一个使用Google Play服务的Android库

时间:2017-01-23 21:12:40

标签: android gradle google-cloud-messaging android-gradle google-play-services

我需要创建一个使用谷歌的gcm和位置服务的Android库。最初我在应用程序的模块中完成了它,一切都很顺利。

现在我需要创建一个Android库供多个应用程序使用,我遇到了很多问题:

第一个是我的lib没有google-services.json文件,因为它应该使用应用程序的模块来配置自己。所以google play services插件不能用于libs的build.gradle文件。

第二个是,似乎google play services插件检测到我没有在lib的apply plugin内调用build.gradle,默认情况下使用该库的9.0.0版本,即使我正在配置它以使用10.0.1。所以我也有一个奇怪的问题来运行我的应用Unable to execute dex: Multiple dex files define ...

创建使用google-play-services的Android库的正确方法是什么?google-play-services也可以与也使用google-play-services的Android应用程序共存?

4 个答案:

答案 0 :(得分:0)

首先在您的资源库中,build.gradle必须删除

//apply plugin: 'com.google.gms.google-services'

由于您无法拥有google-services.json文件,因此无法使用该插件。
您必须添加所需的依赖项,并且只需编译到库。

相反,在使用该库的项目中,您必须添加插件和google-services.json文件。

答案 1 :(得分:0)

我遇到了类似的情况并得出结论:

1- Android库应该有它

  

谷歌-services.json

文件,还应该声明依赖项和google服务插件。

2-使用该库的应用程序可以拥有自己的

  

谷歌-services.json

声明了文件和依赖项。

这里需要注意的是,我们应该使用相同版本的依赖项和google服务插件。

同时添加库依赖项,

  

transitive = true

已添加。

答案 2 :(得分:0)

我在互联网上发现,您的错误通常是由您在项目中使用的多个库(副本)副本引起的。进入项目结构 - >模块,然后签入目标或apk-libs文件夹,如果有多个副本。在此之后,执行清理并构建项目。

有关此问题的更多解决方案,请查看相关的SO question

现在,有关创建使用google-play-services的Android库的问题,请尝试检查此tutorial是否可以帮助您。它提供了您可以关注的屏幕截图。

有关更多信息,请查看以下主题:

答案 3 :(得分:0)

即使在缓存无效并重新启动Android Studio之后也是如此。解决我问题的唯一方法是重新启动计算机。不知道怎么做,但突然一切都再次正确。