Android studio 添加引用Module项目 与 设置Module项目的Libs的Jar在主项目里使用
前言
Module项目,顾名思义就是作为app的独立的单元模块的项目。
在小型app项目里因为没有这么多页面与java文件,所以模块意义不大,所以在小型项目里意义更多是用于管理libs,毕竟将所有的第三方库都放到主项目的libs下,如果第三方库多了管理这个libs文件夹会特别费劲,因为文件太多了。我们可以将一些重量级的第三方库独立用一个Module管理。
而在大型项目里意义就很大了,因为Android开发是不建议在主项目里放入大量的文件来管理各个模块的,一方面很乱各种依赖,另一方面也违背了插拔模块与面对对象的思想。所以将一些模块独立开放到module里意义重大,这样在分工开发的时候各自的开发人员只需要关注自己的module项目就行了。 另外各个java文件也可以很平面化管理(只在项目里创建几个类别文件),而不是根据一个模块在主项目里创建一个这个模块名称的文件夹,然后在里面又创建类别文件夹在来区分放入各种这个模块的activity、adapter、util、widget、bean。正确做法应该将这个模块独立成一个module项目。
添加一个新的Module项目
第一步:在Android studio的菜单栏 找到 > File > New > New Module... 点击进入 Create New Module

选择Android Library 点击 Next
第二步:输入项目名称

导入一个旧的Module项目
第一步:在Android studio的菜单栏 找到 > File > New > Import Module... 点击进入

第二步:导入一个自己需要的项目,并且设置名称,点击Finish。我这里选择了一个叫MyModule的项目

成功导入后我们可以在目录下面看到这个项目。

第三步,导入完成后并不是结束了,现在需要配置这个项目成为library项目
1.首先我们需要进入我们的app主项目的build.gradle下添加这个项目
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation project(':MyModule')//在这里引用项目 注意别忘记:号
}
2.修改根目录下的settings.gradle文件 添加上你导入的项目名称
include ':app', 'MyModule'
rootProject.name='FragmentDemo'
3.打开MyModule项目下的build.gradle,我们将在这里配置相关属性,首先我们看看如果没有配置过的build.gradle是什么样的并且标注要修改的点
没有修改过过的build.gradle
apply plugin: 'com.android.application' //这里要修改成 'com.android.library'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.zh.mymodule" //这个id要去掉
minSdkVersion 27 //注意这里的最低版本,需要与主项目一致
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
修改后
apply plugin: 'com.android.library'
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 27
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
4.重新编译整个项目,就可以看到我们的项目变成library项目了
删除一个Module项目
1.去掉settings.gradle文件里,需要删除的项目名称。 这步很重要如果不删除这个项目名称,你无法在Android studio里删除这个导入的项目,并且就算手动在文件夹里删除目录Android studio依然自动生成这个项目的目录
2.去掉app主项目的build.gradle文件里,implementation project()的项目
3.然后就是重新编译一下项目,这个时候项目的library属性就被去除了,然后直接删除这个项目即可。
设置Module项目的Libs的Jar在主项目里使用
1.在项目里添加libs包,并且加入jar

2.设置这个module项目的build.gradle
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
api files('libs/xxxxxxxx.1.0_L.jar') //关键点 api files
}
这样就可以在主项目上使用这个jar包了,而不是jar只局限在这个module项目里
END
Android studio 添加引用Module项目 与 设置Module项目的Libs的Jar在主项目里使用的更多相关文章
- Android Studio 添加引用Module项目
新建Android项目,修改为Module 新建一个android项目 给项目命名,这里命名为MyLibrary,作为可引用的Module项目 点击下一步,选择一个Activity,点击ok 下面将这 ...
- Android studio 添加引用新建类库
1.新建一个工程包 2.修改AndroidManifest.xml 将AndroidManifest.xml 修改为 <manifest xmlns:android="http://s ...
- 在Android Studio添加本地aar包引用
1.如何在Android Studio添加本地aar包引用 https://jingyan.baidu.com/article/2a13832890d08f074a134ff0.html 2.完成上述 ...
- Eclipse / android studio 添加第三方jar包 步骤
eclipse 将第三方包放到libs文件夹后并没有引用. 基本步骤分为3步,具体介绍如下: 打开自己的Eclipse,在自己的Android工程上名上右键->Build Path ->C ...
- Android Studio(六):Android Studio添加注释模板
Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...
- 在Xcode5和Android Studio添加工程间的依赖
正在编辑中,尚未完成 先看看ios的target是什么,请先参看http://www.cocoachina.com/bbs/read.php?tid-10884.html做个大概了解 这里有一篇文章, ...
- Android studio 中引用jar的其实是Maven?(二)
上一篇:Android studio 中引用jar的其实是Maven?(一) 搭建maven仓库: 去了解一个新的事物的时候,最好的方式就是去使用它.例如去了解一座城市的时候,最好的方式就是乘坐公共交 ...
- Android studio 中引用jar的其实是Maven?(一)
由于Studio比eclipse多了一步对工程构建的步骤,即为build.gradle这个文件运行,因此其引入第三方开发jar包与lib工程对比Eclipse已完成不同,引入第三方jar与lib工程显 ...
- 【Android Studio安装部署系列】十五、Android studio添加Assets目录
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio新建项目时是没有assets目录,需要自己手动创建. app右键——New——Folder——Asset ...
随机推荐
- 结合Poi实现可读取Excel的文件选择对话框
第一步:ApachePoi的jar包导全,不全会出现异常. 第二步:写就完事了:此例为读取特定模板的excel,仅供参考,根据实际需求改写. package 自建包; import java.awt. ...
- Java类与类的关系、继承与多态、重写与重载
Java类与类的关系 (1)is-a包括了 继承,实现关系 (2)has-a包括了 关联,聚合,组合关系 (3)use-a包括了 依赖关系 实现关系: 实现指的是一个class类实现interface ...
- python--hmac
检测一下客户端是否合法,不依靠登录认证.这样即使知道服务端ip和端口,客户端也不能随便就连接服务端实现机制是在服务端中设置了密钥,借用了hmac os 两个模块 import socket impor ...
- linux磁盘分区、挂载、查看
实战: 34 查看本机所有磁盘 fdisk -l 35 查看磁盘挂载情况 lsblk -f 36 39: ...
- Linux/CentOS 7 timezone 修改
1.su - 登录root用户 2.timedatectl set-timezone {timezone} (set后面加想要设置的时区) 举例:timedatectl set-timezone As ...
- union 或者 union all 与 order by 的联合使用
首先清楚:多个select 语句 union 时不是简单的将查询结果拼接起来 而是将sql拼接起来编译(做为一个sql语句),然后去执行. 注: union 连接的语句中只会出现一个order by ...
- 笔记52 Mybatis快速入门(三)
一.更多查询 1.模糊查询 修改Category.xml,提供listCategoryByName查询语句select * from category where name like concat(' ...
- Bribing FIPA
Bribing FIPA 给出多棵有n个节点的有根树,第i个节点有一个权值\(a_i\),定义一个点能控制的点为其所有的子节点和它自己,询问选出若干个点的最少的权值之和,并且能够控制大于等于m个点,\ ...
- 利用reduce方法,对数组中的json对象去重
数组中的json对象去重 var arr = [{ "name": "ZYTX", "age": "Y13xG_4wQnOWK1Q ...
- NX二次开发-UFUN初始化UF_initialize
在调用UFUN函数时必须加Uf.h头文件,代码开头和结尾加UF_initialize和UF_terminate NX9+VS2012 #include <uf.h> #include &l ...