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文件中,如下图:
在这里插入图片描述
到这里就完成了

项目GitHub地址为https://github.com/HaiTaoFeng/TestA

发布了20 篇原创文章 · 获赞 26 · 访问量 9438

猜你喜欢

转载自blog.csdn.net/weixin_42574892/article/details/103365766