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

3
我需要创建一个Android库,使用谷歌的GCM和位置服务。最初,我在应用程序模块内完成了这个任务,一切都很顺利。
现在我需要创建一个Android库供多个应用程序使用,但我遇到了很多问题:
第一个问题是我的库没有google-services.json文件,因为它应该使用应用程序模块来配置自己。所以Google Play Services插件在libs' build.gradle文件上无法工作。
第二个问题是似乎Google Play Services插件检测到我没有在库的build.gradle中调用apply plugin,并默认使用版本9.0.0,即使我将其配置为使用10.0.1。所以我也遇到了一个奇怪的问题,无法运行我的应用程序,提示"Unable to execute dex: Multiple dex files define ..."。
创建一个使用Google Play Services的Android库,同时与使用Google Play Services的Android应用程序共存的正确方法是什么?
4个回答

1
首先,在您的库中,在build.gradle文件中,您必须删除该行。
//apply plugin: 'com.google.gms.google-services'

由于您没有一个名为google-services.json的文件,因此无法使用该插件。
您需要添加所需的依赖项,仅编译库即可。
相反,在将使用库的项目中,您需要添加插件和google-services.json文件。

0

我曾经遇到过类似的情况,并得出以下结论:

1- Android 库应该拥有它

google-services.json

文件还应声明依赖项和Google服务插件。

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

google-services.json

文件和依赖已声明。

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

在添加库依赖时,

transitive = true

被添加。


但是为什么我需要这个文件呢?如果你看一下Intercom Android Sdk的安装,他们并没有使用新的googleservices.json文件。传递性很有道理,我会尝试一下! - Kayan Almeida

0

我在网上发现,你遇到的这个错误通常是由于你在项目中使用了多个库(重复)引起的。进入项目结构 -> 模块,然后检查目标或apk-libs文件夹是否有多个副本。之后,进行一次清理并构建项目。

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

现在,针对你关于创建一个使用google-play-services的Android库的问题,请尝试查看此教程是否能帮助你。它提供了你可以跟随的截图。

如需更多信息,请查看以下主题:


-1
即使清除了缓存并重新启动了Android Studio,我的问题仍然没有解决。唯一解决问题的方法是重新启动电脑。我不知道为什么,但突然间一切都变得正确了。

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