Android Studio多工程引用同一个library项目配置方法

Stella981
• 阅读 840

在使用Android Studio 开发中,如遇到多个项目引用同一个library(源码)的情况时,会遇到在每个项目中都要有一套library的代码,对还在开发和维护中的library需要频繁的修改,这对同步就很麻烦了,下面提出以下方法供选择。当然最后会给出最合理的解决办法。

第一种方法是对library向每个引用的项目建立软连接。这样修改就会对每个引用同步修改.这种方法就是看起来会很臃肿,如果要引用多个library就很痛苦。

第二种就是maven 仓库的方式,将所有的library都上传到maven仓库,然后在各个工程中进行引用,当然这种是对稳定的library来说是最好的一种方式,但对于library需要开发和修改的就不太适合了。

第三种就是将所以的library作为一个工程使用,然后将所有的library都放入此工程中,然后在其他引用library的工程中,引入新建的工程,这样看起来和eclipse 引用library的结构就很像了,且可以放入多个library都不影响。下面就来看看这种解决方法,该如何实现。

  1. 首先新建一个工程,注意是工程,不是Stuio里面的Module,起一个容易理解的工程名称 CommonLibrary 。

  2. 将需添加的library添加进CommonLibrary中,记得每个library也是需要有 build.gradle 文件的,且配置项正确。

  3. 在需要引用的的工程中,需要在 settings.gradle 文件中添加引用代码如下:

    include ':CommonLibrary' project (':CommonLibrary').projectDir = new File('../CommonLibrary/') include ':CommonLibrary:CommonsA'

    其中CommonsA为项目要使用的公共library名称

    然后在我们项目实际的model中修改 build.gradle 文件,需要在 dependencies 中添加下面的代码。CommonsA和CommonsB都是要要引用的项目。

    compile project (':CommonLibrary:CommonsA') compile project (':CommonLibrary:CommonsB')

至此多个工程引用同一个lib的方法就基本完成,配置玩后sync下,然后build,看是否成功。

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Mac 打开、编辑 .bash_profile 文件
exportPATH${PATH}:/Users/loaderman/Library/Android/sdk/platformtoolsexportPATH${PATH}:/Users/loaderman/Library/Android/sdk/toolsexportANDROID_HOME$HO
Easter79 Easter79
3年前
SpringMVC与SpringBoot配置文件的加载区别
一、SpringMVC:配置文件在classpath下。在web.xml中配置加载。以下项目为示例其中引用关系为1. applicationContextdao.xml引用了mybatis文件夹中的配置文件2. applicationContextshiro.xml引用了shiro文件夹中的配置文件3. sprin
Wesley13 Wesley13
3年前
R语言可视化——数据地图应用(东三省)
今天是一个案例应用,采用东北三省地图进行离散颜色映射,让大家感受下R语言在地理信息空间可视化方面的强大功能,同时也会对之前强调过的地图配色技巧进行应用。加载工具包:library(ggplot2)   绘图函数library(plyr)     数据合并工具library(maptools
Wesley13 Wesley13
3年前
C#获取桌面某个窗体截图进行OCR识别
1.首先电脑需要安装完整版的MicrosoftOffice并选择安装MicrosoftOffice工具(默认是不安装的)。2.添加项目对MODI的引用:右键单击项目下的引用添加引用选择COM下的MicrosoftOfficeDocumentImaging12.0ObjectLibrary确定。3.添加usingS
Easter79 Easter79
3年前
SpringCloud多模块打包失败问题记录
项目采用了SpringCloud微服务架构,由于存在很多公共配置及工具类,所有抽离出一个公共模块供所有模块引用,但是对SpringCloud项目打包时总是提示找不到公共模块中的某个路径或者找不到main方法。!(https://imgblog.csdnimg.cn/20200923100014598.png?xossprocessimage/
Stella981 Stella981
3年前
Eclipse下.project和.classpath作用
1.classpath作用定义项目的结构,如src、output、con、lib等。 源文件的具体位置(kind"src")运行的系统环境(kind"con")工程的library的具体位置信息(kind"lib")在每个lib的xml子节点中,有关
Easter79 Easter79
3年前
Tomcat7 自动加载类及检测文件变动原理
在一般的web应用开发里通常会使用开发工具(如Eclipse、IntelJ)集成tomcat,这样可以将web工程项目直接发布到tomcat中,然后一键启动。经常遇到的一种情况是直接修改一个类的源文件,此时开发工具会直接将编译后的class文件发布到tomcat的web工程里,但如果tomcat没有配置应用的自动加载功能的话,当前JVM中运行的class还是
Stella981 Stella981
3年前
Android Volley运用
使用Android studio在build.gradle添加以下信息就可以获取支持库,当然了,如果你没有下载到该支持库会提示你下载。compile 'com.mcxiaoke.volley:library:1.0.19'在一个Application中创建一个请求队列,调用通过((Myapp) getAppl
Stella981 Stella981
3年前
React项目中应对开发、测试、生产环境下使用不同全局常量的问题
在开发过程中,避免不了后端在开发、测试、生产环境不一致的情况,这不最近就遇到这样的问题:在开发和测试环境,后端需要一个参数比如:zonehk1,在生产环境中需要的参数又是zonehka,那么解决这种问题的方法也不是唯一的,这里只介绍一种通过配置文件完成的过程。我们在构建react项目时,会执行npmruneject,导出react脚手架
Wesley13 Wesley13
3年前
umeng分享出现的问题
今天在重整以前代码的时候,想去掉social\_sdk\_library\_project这个library的引入,直接添加jar包完成分享功能。然后出现了一下几个问题,整理一下,方便查阅...问题1.java.lang.RuntimeException:获取资源ID失败:(packageNamecom.XXX.XXXXty