如何在Android中包含两个不同版本的库

时间:2014-04-09 18:26:05

标签: android dependency-management

为了向后兼容,我需要在我的应用程序中包含两个版本的相同条形码读取库。

对于旧格式的条形码,我将使用旧的lib。
对于新格式的条形码,我将使用新的lib。

问题: 两个库中的类具有相同的名称。

问题: 在没有名称冲突的情况下将两个库包含在我的应用程序中的最佳方法是什么?

我尝试了什么: 我试图创建两个lib项目 - 每个lib一个。我试图通过使用构建路径访问规则禁止直接访问libs - 但是应用程序仍然可以看到这两个库。

2 个答案:

答案 0 :(得分:3)

我假设您没有此lib的源代码,对吗?

有源代码:

您应该构建一个支持旧格式和新格式的库。

拥有lib但没有来源:

仅当您使用自定义ClassLoader时才可以这样做。请查看this以获取示例。

答案 1 :(得分:0)

虽然极端,但您可以选择更改旧库命名空间的根目录。

确保通过重构来实现,以便内部库类相应地更改。