概述
Android开发快捷的一个地方就是可以引入别人写好的类库模块,供我们高效开发和使用。
有时候我们自已开发的项目多了,也会有自己的一些类库包,但毕竟还在开发期,需要经常变更,所以还没办法直接上传到Maven中进行简单的参考引用。
这时候就要用一些小技巧,把我们自己的公共类库引入到不同的专案中,需要修改时,只要修改公共类库一份代码,其他专案重新编译即可生效。
第一步:新建公共类库
New Project > No Activity
会默认生成一个空的带有app模块的专案。
专案配置settings.gradle
文件中的结构
rootProject.name = "ZGLibrary"
include ':app'
实例如:新增zgmvp模块
切换到project目录,然后在专案名称上右键,new > module
确保新模块的名称前面没有:app
字样,不然会将新模块建立到app模块目录下面去
建立完成后会在app同级目录下生成新模块的目录,此时再切换回android目录即可看到刚才建立的新模块了。
此时再去检查settings.gradle
文件会发现多了一行
include ':zgmvp'
至此,重建专案,即可在同一个项目中不同模块间实现了互相调用。
加入参考
因为在同一专案下,使用Android Studio编译时都是整个专案一起编译,所以,不用再在app模块下添加编译library的语句
如果是在其他专案下被引用时,则要在相应的app > build.gradle > dependencies
下加上编译类库的语句
implementation project(':zgmvp')
第二步:跨专案引用公共类库
单个模块引入
settings.gradle
中添加如下代码,引入哪个模块,就把哪个模块的目录指定出来
include ':zgmvp'
project(':zgmvp').projectDir = new File("../ZGLibrary", "zgmvp")
上面修改完成后,记得在build.gradle
中加入相应参考,然后清空专案重建一下看看是不是生成了引入的模块相应的build.gradle
了,也就代表成功了
测试了下,去修改完公共类库后,再回到当前专案,重建时就会把相关的变更引入进来。
多模块引入
先引入专案目录,指定好专案目录后再分别引入相应模块
实际使用时发现这种直接引入整个方案的会报gradle version错误,后期还是以上面的单个模块引入为主。
另外这种方式也有个问题就是如果我只想要专案下的一个小项目,却也要引入整个方案也不好。
include ':ZGLibrary'
project(':ZGLibrary').projectDir = new File("../ZGLibrary")
include ':ZGLibrary:zgmvp'