Android 将引入jar、so包的module打包成jar或者aar文件

Android 将module中的jar、so包打包成jar或者aar文件 项目要求进行sdk开发,将项目打包成jar或aar包提供给第三方进行调用。
1.如果项目中集成其它的jar包,如高德定位的jar包等,你将项目打包成jar或者aar包时会发现没有里面没有高德的jar包;
2.如果你项目中集成了jni资源,里面有so包的,你可以将其打包aar文件。
一、将含有第三方jar资源的module打包成jar或者aar文件
1.新建module;
module作为项目中的模块,在建module之前要新建一个APP项目(简称项目A),然后在项目A上新建一个module B(简称模块B),选择Android library,如下图:
Android 将引入jar、so包的module打包成jar或者aar文件
文章图片

创建完成后项目目录架构如下图:
Android 将引入jar、so包的module打包成jar或者aar文件
文章图片

2.修改libraryb下的build.gradle文件

apply plugin: 'com.android.library' android { compileSdkVersion 29 defaultConfig { minSdkVersion 22 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}sourceSets { main { jni.srcDirs = [] //jniLibs.srcDirs = ['src/main/jniLibs']//设置目标的so存放路径 } }buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' }lintOptions { abortOnError false } }task makeJar(type: Jar){ //删除存在的 delete 'build/libs/newsdk.jar'//删除存在的 archivesBaseName = 'newsdk'//输出的jar包名称 from(project.zipTree('build/intermediates/packaged-classes/release/classes.jar')) from(project.zipTree('build/intermediates/packaged-classes/release/libs/AMap_Search_V7.1.0_20191030.jar')) //需要打包的第三方jar包 destinationDir = file('build/libs')//打成jar包后存放的文件目录 } makeJar.dependsOn(build) }dependencies { testImplementation 'junit:junit:4.12' implementation files('libs/AMap_Search_V7.1.0_20191030.jar') }

有第三方jar引用的,先引用第三方jar包,然后在模块B 的build.gradle中添加下面这个
Android 将引入jar、so包的module打包成jar或者aar文件
文章图片

要注意改一下jar包名称。
3、将模块B打包成jar或者aar包
点开Gradle→libraryb→order→makejar,双击makejar开始编译打包,如下图:
Android 将引入jar、so包的module打包成jar或者aar文件
文章图片

makejar成功后会在build中生成相对应的文件,如下图:
Android 将引入jar、so包的module打包成jar或者aar文件
文章图片

4、查看是否成功把第三方jar打包到自己的jar和aar文件中
要查看jar或者aar包是否有第三方jar包,可以jar或者aar文件后缀改为.zip,然后解压缩就可以里面的第三方jar包的东西,如下图:
Android 将引入jar、so包的module打包成jar或者aar文件
文章图片

二、将so包打包到aar文件中
1、在模块下添加jinLibs目录,将so包放进去,如下图:
Android 将引入jar、so包的module打包成jar或者aar文件
文章图片

2、双击makejar进行编译打包
编译成功后,拿出对应的aar文件修改后缀名为.zip解压后可以看到对饮的so包已经存在aar文件中,如下图:
Android 将引入jar、so包的module打包成jar或者aar文件
文章图片

到这里就完成了
【Android 将引入jar、so包的module打包成jar或者aar文件】项目GitHub地址为https://github.com/HaiTaoFeng/TestA

    推荐阅读