我需要创建一个使用谷歌的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应用程序共存?
答案 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之后也是如此。解决我问题的唯一方法是重新启动计算机。不知道怎么做,但突然一切都再次正确。