将依赖项包含在Android库中的最佳方法?

问题描述

我建立了一个库,该库可以通过Retrofit进行一些网络请求。翻新作为JAR文件包含在库中。 我想将库作为.aar文件发送。

将使用.aar文件的主机应用程序也需要进行翻新,因为它需要执行一些网络请求。

主机应用程序应该做什么?

  • 使用.aar文件的Retrofit库吗?

    我已经尝试过了 工作,问题是听起来不像一个可维护的解决方案 因为主机应用将绑定到内部的Retrofit版本 库。

  • 包括其他版本的翻新版吗?

    我已经尝试过,并且在编译主机应用程序时遇到错误,因为我具有多个版本的Retrofit文件。例如:

发现有多个文件具有与操作系统无关的路径'okhttp3 / internal / publicsuffix / NOTICE'

  • 还有其他解决方法吗?

    我读到可以使用传递选项,但如果这样做,该库将取决于宿主应用程序的Retrofit版本吗?

解决方法

从我的角度来看,最好使用传递选项。

该库不依赖于主机应用程序,但是主机应用程序依赖于库。您的库仍将使用您在库中实现的Retrofit版本。

通过使用传递选项,您只是确保主机应用程序未使用库中正在使用的改造版本。