1. 程式人生 > >AndroidStudio下將android library打成jar包

AndroidStudio下將android library打成jar包

在AndroidStudio下,需要將android library打包成SDK,亦即是jar包,可以在library專案下的build.gradle下配置以下指令碼

//以下為生成jar包的指令碼程式碼
def SDK_BASENAME = "MediaSDK"
def SDK_VERSION = ""
def sdkDestinationPath = "build"
//def zipFile = file('build/intermediates/bundles/release/classes.jar')
def zipFile = file('build/intermediates/packaged-classes/release/classes.jar')
//將libs目錄下的gson打入jar包
def gson=file('libs/gson-2.8.5.jar')
def pinYin = file('libs/jpinyin-1.0.jar')
def nForeApi = file('libs/nForeAPI.jar')
def aTTS = file('libs/AFTTS.jar')
def supportV4 = file('libs/android-support-v4.jar')



task deleteBuild(type: Delete) {

    delete sdkDestinationPath + SDK_BASENAME + SDK_VERSION + ".jar"
}
task makeJar(type: Jar) {
    from zipTree(zipFile)


    if (phoneZoneEnable.toBoolean()) {
        //需要使用號碼歸屬地資料庫
        println("需要號碼歸屬地資料庫")
        from fileTree(dir: 'src/main', includes: ['assets/**'])
    } else {
        println("不要號碼歸屬地資料庫")
//        from fileTree(dir: 'src/main/assets', excludes: ['bluetooth_sdk.db'])
    }
//    from zipTree(pinYin)//將第三方jar包打入jar包
//    from zipTree(nForeApi)
    from zipTree(gson)

    if (includeSupportV4.toBoolean()) {
        println("需要v4包")
        from zipTree(supportV4)   //當安卓5.0以下不用將V4包打包進去,在安卓5.0以上則需要
    }

//     exclude('**/BuildConfig.class')//排除不必要的class檔案
    baseName = SDK_BASENAME + SDK_VERSION
    destinationDir = file(sdkDestinationPath)
}
makeJar.dependsOn(deleteBuild, build)
// 2017-10-17 在Terminal 視窗輸入命令生成JAR包:gradlew makeJar