一、AS中生成Jar包
概念:将自己开发的一个类库打包成jar包以供其他项目调用,这个jar包也叫SDK或者叫library。
-
新建项目MakeMyJarDemo
-2. 新建Module:mylibrary
(1)鼠标右键点击app->New->选择Module
(2)选择AndroidLibrary->点击Next
(3)填写名称->点击Finish
(4)新建项目功能文件MyFunctions.java
-
public class MyFunctions {
public static void showLog(){
Log.v("jar","这是MakeMyJarDemo项目的功能文件");
}
public static void showToast(Context context, String msg, TextView textView){
textView.setText(msg);
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
}
}
- 主工程依赖mylibrary
(1)打开主工程的build.gradle(Module:app)文件,添加信息如下,并点击Sync Now
- 主工程依赖mylibrary
implementation project(':mylibrary')
(2)在主工程的MainActivity中调用mylibrary的功能文件验证依赖成功
- mylibrary打包为jar包
(1)打开build.gradle(Module:mylibrary)文件,添加信息如下,并点击Sync Now
- mylibrary打包为jar包
//修改jar名字+将指定jar生成的地方
task makeMyJar(type: Copy) {
//删除存在的
delete 'build/libs/mysdk.jar'
//设置拷贝的文件
from('build/intermediates/intermediate-jars/release/')
//打进jar包后的文件目录
into('libs/')
//将classes.jar放入build/libs/目录下
//include ,exclude参数来设置过滤
//(我们只关心classes.jar这个文件)
include('classes.jar')
//重命名
rename ('classes.jar', 'mysdk.jar')
}
makeJar.dependsOn(build)
备注:task makeJar中的makeJar只是一个方法名称可以随意取名,但是必须得和下面的makeJar.dependsOn(build)的makeJar方法名称一致
(2)打开Terminal控制台,输入指令 gradlew makeJar后回车即可生成jar包
备注:Terminal控制台输入gradlew+方法名称时,方法名称需和上步task makeJar中的方法名保持一致。
说明:若as从来没有生成过jar,那么第一次就会很慢,会去下载一些文件
(3)打包Success后jar文件会出现在mylibrary工程对应的build->libs中(同样arr会出现在outputs中)
说明:复制mysdk.jar到一个新的module中的libs目录下,然后就可以调用jar包文件中的方法了。
二、AS导入Jar包
-
项目UseMyJarDemo导入mysdk.jar包
(1)复制jar包至Project - > app - > libs目录下,之后重启AS。
-
-
测试导入成功
-
参考:Android studio 如何导入libs目录下的jar包、libs 下面的jar包怎么导入android denpendencies