android项目Module生成aar和jar

2,134 阅读1分钟
一. aar和jar的区别

这篇文章介绍的很详细: blog.csdn.net/ljx14000525…

我们直接拿结果:

jar文件: 只包含class文件和清单文件,不包含资源文件,比如图片等所有的 res下的资源文件;

aar文件: class以及res下的所有的资源文件全部包含;

一. 生成aar

这篇文章写的很详细

www.cnblogs.com/androidxiao…

以下个人操作

  1. 新建Module项目

File → New Module → Android Library

  1. 编译成aar包

选中要生成aar的Module,点击菜单栏 Build → Make Module ‘项目名’

  1. 编译完成之后会在Module的build-->outputs-->aar-->xxxxx.aar

  2. 打releases包 build.gradle中配置了debug和releases两个版本:

buildTypes {
    release {
        signingConfig signingConfigs.myConfig
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    debug {
        signingConfig signingConfigs.myConfig
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

方法一:或者右边Gradle -> 找到项目 -> Task -> other -> assembleRelease

方法二:Terminal命令行执行命令

./gradlew :项目名:assemble
二. 生成jar

参考文档:

blog.csdn.net/xifei66/art…

blog.csdn.net/haha223545/…

以下个人操作

  1. 文章里是项目的gradle文件里添加代码,有些项目封装了global.gradle文件,加到这里没问题,但是我测试项目没有写这个配置,写到项目的build。gradle中报错,我就改成了对应lib项目的build.gradle文件中,build成功
task clearJar(type: Delete) {

    delete 'build/outputs/'

}

task makeJar(type: Copy) {

    from('build/intermediates/packaged-classes/release/')//jar文件来源

    into('build/outputs/') //生成路径

    include('classes.jar')

    rename('classes.jar','my_test_library.jar') //命名为my_test_library.jar

}

makeJar.dependsOn(clearJar, build)

  1. 加入代码后build,成功后点击右上角的Gradle按钮,点开对应module → other → makeJar

  2. 等待任务执行成功后,在build/outputs文件夹下就能找到成功生成的jar文件

  3. 生成releases-jar: 右边Gradle -> 找到项目 -> Task -> other -> transformClassesAndResourcesWithSyncLibJarsForRelease ,双击运行