Android Studio多项目引用同一个module

AS(AndroidStudio)在导入一个外部的本地module时,AS会复制一份module到当前项目目录下。在多个项目都引用同一个module时,并且该module正处于开发维护阶段需要频繁改动时,就要去每个项目中修改module的代码,同步起来会非常麻烦。

有这样几种方法可以解决这个问题:

一、将引用的module打成jar或aar,每个项目直接引用这个jar或aar。但如果引用该module的项目很多,这种方式就不太好了。

二、采用maven 仓库的方式。将所有的module都上传到maven仓库,然后在各个项目中进行引用。但如果该library需要频繁开发和修改,种方式也不太好。

三、将module作为一个项目工程使用。新建一个工程并将所有的library都放入此工程中,在其他引用该module的工程中引入该新建的工程。这和eclipse引用Library的结构很像,而且可以放入多个module。

操作步骤:

1.新建一个项目命名为BaseLibrary,并新建一个module(类型为Android Library)命名为base。

2.新建一个项目命名为Test(与MyLibrary工程在同一目录下),并在根目录下的settings.gradle文件添加

include ':BaseLibrary'
project(':BaseLibrary').projectDir = new File('../BaseLibrary')
include ':BaseLibrary:base'

如图:

3.配置完后Sync Now下,然后Test项目中就会新增BaseLibrary项目。

4.在Test中要使用library的module中的build.gradle文件中添加引用:

implementation project(':BaseLibrary:base')

现在就可以使用BaseLibrary项目了。修改BaseLibrary项目,其他引用的项目也会自动同步。

后记:

1.Test项目虽然引用了BaseLibrary:base,但是却不能使用其所包含的第三方jar。

解决方法:

修改BaseLibrary:base中的第三方jar依赖方式:
将implementation改为api
将testImplementation改为testApi
将androidTestImplementation改为androidTestApi

如图:

2.当BaseLibrary项目中又增加了一个module命名为t_module,这个t_module引用了base之后,Test项目引用了t_module报错:

解决方法:

修改BaseLibrary:t_module的build.gradle

implementation project(':base')
改为
implementation project(project.path.replace(project.name,'') +':base')


重新Sync Now即可。

demo链接

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值