一、AS中生成Jar包

概念:将自己开发的一个类库打包成jar包以供其他项目调用,这个jar包也叫SDK或者叫library。

新建项目MakeMyJarDemo

项目MakeMyJarDemo.png

-2. 新建Module:mylibrary

(1)鼠标右键点击app->New->选择Module

Module.png

(2)选择AndroidLibrary->点击Next

image.png

(3)填写名称->点击Finish

image.png

(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

implementation project(':mylibrary')

image.png

(2)在主工程的MainActivity中调用mylibrary的功能文件验证依赖成功

image.png

mylibrary打包为jar包

(1)打开build.gradle(Module:mylibrary)文件,添加信息如下,并点击Sync Now

//修改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)

image.png

备注:task makeJar中的makeJar只是一个方法名称可以随意取名,但是必须得和下面的makeJar.dependsOn(build)的makeJar方法名称一致

(2)打开Terminal控制台,输入指令 gradlew makeJar后回车即可生成jar包

image.png

备注:Terminal控制台输入gradlew+方法名称时,方法名称需和上步task makeJar中的方法名保持一致。

说明:若as从来没有生成过jar,那么第一次就会很慢,会去下载一些文件

(3)打包Success后jar文件会出现在mylibrary工程对应的build->libs中(同样arr会出现在outputs中)

image.png

说明:复制mysdk.jar到一个新的module中的libs目录下,然后就可以调用jar包文件中的方法了。

二、AS导入Jar包

项目UseMyJarDemo导入mysdk.jar包

(1)复制jar包至Project - > app - > libs目录下,之后重启AS。

image.png

测试导入成功

image.png

参考:Android studio 如何导入libs目录下的jar包、libs 下面的jar包怎么导入android denpendencies