在Android库中包含依赖的最佳方法是什么?

3

我建立了一个使用Retrofit进行一些网络请求的库,Retrofit以JAR文件形式包含在库中。

我想将该库作为.aar文件发布。

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

主应用程序应该怎么做?

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

    我尝试过这样做并且有效,但问题是这不像是可维护的解决方案, 因为主应用程序将与库中的Retrofit版本绑定在一起。

  • 包括另一个版本的 Retrofit ?

    我尝试过这样做,但在编译主应用程序时出现错误, 因为我有多个版本的 Retrofit 文件。例如:

找到了OS独立路径'okhttp3/internal/publicsuffix/NOTICE'的多个文件

  • 还有其他解决办法吗?

    我读到可以使用传递选项(transitive option),但如果这样做, 库就会依赖于主应用程序中的Retrofit版本,对吗?

1个回答

0

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

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

通过使用传递选项,您只需确保库内使用的Retrofit版本不被宿主应用程序利用。


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