欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android studio生成jar文件

程序员文章站 2022-05-18 11:25:39
...

今天公司需求把Android代码打包成jar包提供给其他部门,以前用Eclipse打包过,Android studio倒还是第一次。虽然网上的文章不计其数,但是纸上得来终觉浅,有必要记录下自己动手的操作过程。

 

1.创建一个工程。

过程就略过了。。。

2.工程中创建一个Android Library。

File->New->New Module 如下图所示。

Android studio生成jar文件

 

3.令此工程依赖新建的library。

项目级别gradle (app下的build.gradle)引入该Library。

    //老版本
    //compile project(':buildjar')
    implementation project(':buildjar')

构建一下工程,如果在app文件夹内可以引用到library的方法,即可视为构建成功。

Android studio生成jar文件

 

4. 配置gradle脚本。

最蛋疼的步骤。我们需要在library级别的gradle进行修改。

Android studio生成jar文件

直接附上gradle代码。

apply plugin: 'com.android.library'

android {
    
    defaultConfig {
    }

    buildTypes {
        release {}
    }

    lintOptions {
        abortOnError false
    }

}

dependencies {}

def SDK_BASENAME = "HEIMA";
def SDK_VERSION = "_V1.0";
def OUTPUT_PATH = "build";
def INPUT_PATH = file('build/intermediates/packaged-classes/release/classes.jar')

//删除任务
task deleteBuild(type: Delete) {
    delete OUTPUT_PATH + SDK_BASENAME + SDK_VERSION + ".jar"
}

//创建任务
task makeJar(type: Jar) {
    //需要打包的原始classes.jar
    from zipTree(INPUT_PATH)
    //将assets目录打入jar包
    from fileTree(dir: 'src/main',includes: ['assets/**'])
    //生成文件名字
    baseName = SDK_BASENAME + SDK_VERSION
    //生成
    destinationDir = file(OUTPUT_PATH)
}

makeJar.dependsOn(deleteBuild, build)

注意代码填写位置,在android{}和dependencies{}外面。同时这处的代码有俩种写法,还有一种是from() 和into(),我没有试,不做讨论。

同时,有坑要注意!关于打包的原始classes.jar的路径,也就是我定义的INPUT_PATH。不同的Android Studio版本竟然不一致!这个需要自己手动确认下。有的版本可能在'build/intermediates/bundles/release/classes.jar'下。

 

5.运行。

第一步:重新build该project 。

第二步:点开右边的gradle目录->other->makeJar 。

Android studio生成jar文件

6.最后在自定义的路径下就会生成我们需要的jar包了。亲测可用~

 

直接看demo的同学可以直接去我的github下载代码,省金币,简单实用。

GitHub传送门