我需要使用Android Studio构建一个库,以下是我的配置:
包含2个模块的项目:1/App:包含测试我的库的应用程序的应用程序模块2/MyLibrary:Library Module,包含我正在使用的库。
每个模块都有一个相同的外部.jar库文件的实现(放在每个模块的libs文件夹中),方法是转到项目结构-〉依赖关系并添加libs文件夹,结果是:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])
}
事实上,我在两个模块中需要jar,是因为我需要这个jar库中的一些对象作为我正在编写的库中的函数参数,因此我需要我的测试模块能够提供这种对象。
当我尝试编译时,我有一个错误,说“类型com……被定义多次”,实际上外部库在中间文件夹中可见两次
很明显,这个问题来自于我实现这个外部库的方式。我需要一种方法来实现它一次,或者避免两个冲突。
我的问题:在同一个项目中的两个模块中实现外部库的好方法是什么?
我已经试过了:- 清理项目-重建项目-使缓存无效-删除中间文件夹-检查包名称
2条答案
按热度按时间xtfmy6hx1#
有几个选项:
1.由于“测试模块”应该知道“主库模块”(将其作为依赖项),因此您只能在主库模块中添加此jar/lib,而不能在“测试模块”中添加
1.创建第三个模块,将jar添加到其中,并将此模块用作“主库模块”和“测试模块”的依赖项。
rdlzhqv92#
找到了一个解决方法。不知道这是否是一个好的方法。
在库模块中,我更改了:
通过:
然后一切似乎都编译得很好。我对其他解决方案和任何有助于更好理解的东西都持开放态度。