【问题标题】:Create an Android Library that uses google play services创建一个使用 google play 服务的 Android 库
【发布时间】:2017-06-08 12:21:54
【问题描述】:

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

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

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

第二个是谷歌播放服务插件似乎检测到我没有在库的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 应用程序共存?

【问题讨论】:

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


    【解决方案1】:

    即使在使缓存无效并重新启动 Android Studio 之后。解决我的问题的唯一方法是重新启动计算机。不知道怎么回事,突然间一切都恢复正常了。

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        【解决方案3】:

        我也遇到过类似的情况,得出的结论是:

        1- Android 库应该有它

        google-services.json

        文件,还应声明依赖项和谷歌服务插件。

        2- 使用库的App可以有自己的

        google-services.json

        声明的文件和依赖项。

        这里要注意的一点是我们应该使用相同版本的依赖和google services插件。

        同时添加库依赖,

        传递 = 真

        已添加。

        【讨论】:

        • 但是我为什么要拥有这个文件呢?如果您查看 Intercom Android Sdk 安装,它们不会使用新的 googleservices.json。传递是有道理的,会试试看!
        【解决方案4】:

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

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多