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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章