1. 创建jar包工程
-
新创建一个工程,在新建一个android library模块,
2) 或者在新建工程里面,修改编译plugins为"com.android.library", 删除applicationId
2. jar包编译脚本
在模块build.gradle最后添加,主要原料是classes打包和重命名,不同的是android studio不同的版本, classes.jar文件位置不同。
方法1:(旧版本android studio3.0之前)
//Copy类型
task makeJar(type: Copy) {
//删除存在的
delete 'build/libs/mysdk.jar'
//设置拷贝的文件
from('build/intermediates/bundles/default/')
//打进jar包后的文件目录
into('build/libs/')
//将classes.jar放入build/libs/目录下
//include ,exclude参数来设置过滤
//(我们只关心classes.jar这个文件)
include('classes.jar')
//重命名
rename ('classes.jar', 'mysdk.jar')
}
makeJar.dependsOn(build)
方法2
在模块build.gradle最后添加,
task makeJar(type: Copy) {
delete 'build/libs/YouName.jar" //删除之前的jar包
from('build/intermediates/javac/debug/com.xxx') //这行表示要打包的文件的路径,文件在buld中
into('build/libs') //输出的路径,也就是生成的包存在哪(就是jar包里边的包名)
include('classes.jar') //看到这行,如果你对分包有了解的话,你就可以看出来这行它只是将一些类打包了
rename('classes.jar','YouName.jar') //将编译出来的jar包命名为 :"nitiveclient"
}
makeJar.dependsOn(build)
方法3(android stduio3.6+, 当前使用的),
//Copy类型,请在Terminal中运行gradlew makeJar
// 或者 右上角Gradle -> DoraemonManager -> other -> makeJar(双击)
task makeJar(type: Copy) {
def jarName = "xxxx"
//删除存在的
delete 'build/libs/' + jarName + ".jar"
//设置拷贝的文件
from("build/intermediates/aar_main_jar/debug")
//打进jar包后的文件目录,将classes.jar放入build/libs/目录下
into('build/libs/')
//要打包的jar文件
include('classes.jar')
//重命名
rename('classes.jar', jarName + ".jar")
}
makeJar.dependsOn(build)
3. 编译方法
- 请在Terminal中运行gradlew makeJar
- 或者 右上角Gradle -> DoraemonManager -> other -> makeJar(双击)
4. 参考博客
android studio 编译jar包
AndroidStudio3.6.1打包jar及AndroidStudio4.0打包jar的一系列问题及用法
网友评论