2

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

现在我需要创建一个Android库由一个以上的应用程序中使用,我有很多问题:

第一个是我的lib中没有一个谷歌服务.json文件,因为它应该使用应用程序的模块来配置它自己。所以谷歌播放服务插件不工作在库的build.gradle文件。

第二个是,它似乎是谷歌播放服务的插件检测,我不是打电话apply plugin的lib的build.gradle内,默认使用该库的9.0.0版本,甚至当我将其配置为使用10.0.1。所以我也有一个奇怪的问题来运行我的应用程序,Unable to execute dex: Multiple dex files define ...

什么是正确的方式来创建一个使用谷歌播放服务,也可以与Android应用程序,也使用谷歌播放服务的Android库,服务?

回答

0

首先在您的图书馆,在build.gradle必须删除

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

既然你不能有google-services.json文件,你不能使用该插件。
你必须加上需要的依赖关系,并且它足够编译到库。

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

0

我已经遇到了类似的情况,得出的结论是:

1- Android的图书​​馆应该有它

谷歌,services.json

文件,也应该声明依赖和谷歌服务插件。

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

谷歌,services.json

文件和声明的依赖性。

这里要指出的一点是,我们应该使用相同版本的依赖和谷歌服务插件。

另外同时加入库的依赖关系,

传递=真

加入。

+0

但为什么我应该有这个文件?如果你看看Intercom Android Sdk安装,他们不会使用新的googleservices.json。传递是有道理的,会尝试! –

0

我在互联网上发现,你的这个错误通常是由你在项目中使用的库(重复)的多个副本引起的。进入项目结构 - >模块,然后检查目标或apk-libs文件夹,如果有多个副本。在此之后,做一个干净的项目。

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

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

欲了解更多信息,请查看这些线程:

0

即使无效缓存并重新启动Android Studio之后。唯一解决我的问题是重新启动计算机。不知道如何,但突然一切都恢复正确。