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,如下图:
文章图片
创建完成后项目目录架构如下图:
文章图片
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中添加下面这个
文章图片
要注意改一下jar包名称。
3、将模块B打包成jar或者aar包
点开Gradle→libraryb→order→makejar,双击makejar开始编译打包,如下图:
文章图片
makejar成功后会在build中生成相对应的文件,如下图:
文章图片
4、查看是否成功把第三方jar打包到自己的jar和aar文件中
要查看jar或者aar包是否有第三方jar包,可以jar或者aar文件后缀改为.zip,然后解压缩就可以里面的第三方jar包的东西,如下图:
文章图片
二、将so包打包到aar文件中
1、在模块下添加jinLibs目录,将so包放进去,如下图:
文章图片
2、双击makejar进行编译打包
编译成功后,拿出对应的aar文件修改后缀名为.zip解压后可以看到对饮的so包已经存在aar文件中,如下图:
文章图片
到这里就完成了
【Android 将引入jar、so包的module打包成jar或者aar文件】项目GitHub地址为https://github.com/HaiTaoFeng/TestA
推荐阅读
- android第三方框架(五)ButterKnife
- 即将到手三百万
- Android中的AES加密-下
- 带有Hilt的Android上的依赖注入
- 思友人
- android|android studio中ndk的使用
- 20210307《挑战赛怂人胆》【能量将帅挑战赛(01)】
- Android事件传递源码分析
- RxJava|RxJava 在Android项目中的使用(一)
- 苍灵十二将I|苍灵十二将I 第一百二十五章 关门猎兽