AndroidStudio将library打包成jar

在build.gradle里面加入如下代码

afterEvaluate {
    task createJar {
        dependsOn build
        doLast {
            def localProperties = new File(rootDir, "local.properties")
            Properties properties = new Properties()
            localProperties.withInputStream { instr ->
                properties.load(instr)
            }
            def sdkDir = properties.getProperty('sdk.dir')

            def aarDir = "$project.buildDir/outputs/aar/"
            def classesJarName = "classes.jar"

            def outputJar = aarDir + "interface.jar"
            def classesJar = aarDir + classesJarName

            file(outputJar).delete()
            file(classesJar).delete()

            ZipFile zipFile = new ZipFile(aarDir + "$project.name-release.aar")
            Enumeration<?> entries = zipFile.entries()
            while (entries.hasMoreElements()) {
                ZipEntry entry = (ZipEntry) entries.nextElement()
                def filename = entry.getName()
                if (filename == classesJarName) {
                    def buf = new byte[8192]
                    def file = new File(classesJar)
                    file.createNewFile()
                    def is = zipFile.getInputStream(entry)
                    def os = new FileOutputStream(file)
                    def count
                    while ((count = is.read(buf)) > -1) {
                        os.write(buf, 0, count)
                    }

                    os.flush()
                    os.close()
                    is.close()
                }
            }
            zipFile.close()


            exec {
                executable sdkDir + "/build-tools/" + project.android.buildToolsVersion + "/dx.bat"
                args "--dex", "--output=" + outputJar, classesJar
            }
        }
    }
}

打开Terminal 调用 createJar的task :

gradlew createJar

ar包在: 当前app – build – outputs --aar --interface.jar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值