安卓项目 如何让一个module依赖于另一个module

发布网友 发布时间:2022-04-23 17:03

我来回答

2个回答

热心网友 时间:2023-10-10 02:27

androidStudio(后面简称AS)在导入一个外部的本地mole时,AS采用的是复制一份到当前项目目录下这种策略。这种方式在开发一个项目时并不会有什么大问题,不过,在多个项目都引用同一个或几个mole时就会出现大问题,这种公用的mole通常都是框架类或工具类mole,如果每个项目都复制一份mole到自己项目目录下,如果某天发现mole中有几个bug需要修改,你就会发现,你不得不去每个目录下修改mole,如果是修改的东西比较多的话,绝对是欲哭无泪。

上述就是研究多项目依赖同一个mole这个问题的起因,下面直接说说怎么解决(目前官方似乎没有直接支持的方法,不过我相信以后肯定会支持),首先为了方便维护,我们新建一个项目,这个项目下只有公用的mole,不放任何application

然后只需要在其他引用这些mole的工程settings.gradle中添加如下配置

这样,我们就可以像之前那样使用本地依赖的方法直接在当前项目的application中添加这些mole依赖了

原理其实也非常简单,就是我们强制添加并修改了引入mole和mole的路径,完成配置并clean后目录变成如下结构

Driver目录就是项目工程目录,可以发现,配置后,Driver下项目引用的几个mole都被成功引入,只不过和之前直接导入mole不同,他们不再是在Driver目录下了,而是和Driver平级,当然,这并不会影响引用。

注意点:这些看上去和Driver平级的几个mole,其实在真实的文件目录下是不存在的,也就是说你直接进入硬盘查看文件是没有这几个目录的,只有在AS中才能看到,这些mole的真实目录就是他们自己所在的lirary项目目录,这样就保证了多个项目同步使用一个mole。配置settings.gradle中mole的File的路径时需要注意,里面应该填写的是mole的真实目录,因为我的mole根目录和项目是在同一个工作空间的,如果你的mole的根目录和项目不再同级目录,则应该做出对应修改。

补充:发现一个额外问题,这样配置后,如果你的公用library是上传了git的话,你的项目如果没有配置git,然后你配置git时会发现怎么提交都是显示的上传library到git,这时只需要自己手动新建一个仓库就可以了

追问我不要导入其他mole,我现在有moleA和moleB ,我需要在moleA依赖moleB,该怎么做,因为我moleB里面只有一些依赖之类的,是核心库

热心网友 时间:2023-10-10 02:27

setting.gredle中配置你的mole成为library 比如:
include ':android-pdfview', ':sdkproject'追问我需要在moleA 依赖 moleB,该怎么做?

追答CTRL+ALT+SHIFT+S 打开project structure 选中 moleA 点dependencies 点 “+”选择 mole dependency 选择 moleB

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com