Android Studio 编译jar包

1. 创建jar包工程

  1. 新创建一个工程,在新建一个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. 编译方法

  1. 请在Terminal中运行gradlew makeJar
  2. 或者 右上角Gradle -> DoraemonManager -> other -> makeJar(双击)

4. 参考博客

android studio 编译jar包
AndroidStudio3.6.1打包jar及AndroidStudio4.0打包jar的一系列问题及用法

你可能感兴趣的:(Android Studio 编译jar包)