Android Studio 将libs下的JAR打到总的Jar包下

本文介绍如何使用Gradle将项目中的class文件及libs下的多个第三方Jar包整合进单一的SDK Jar文件。通过定义Gradle任务,从指定路径收集文件,并最终生成可用于分发的domob_android_sdk.jar。

整理对外的SDK,自己项目中用到以前写的一些Jar的库,刚开始以为build/intermediates/bundles下的class.jar 就可以使用,但是测试运行发现 libs 下引用的Jar 包中的类没包括进去。如果要打的Jar工程libs 中没有依赖第三方Jar包是可以直接只用该目录下的class.jar的,但是运行发现报 classnotdeffound 错误,于是摸索这使用gradle 把libs 下的 Jar包也打进去。代码如下

 task makeJar(type: Jar) {
        archiveName = 'domob_android_sdk.jar'
        from('build/intermediates/classes/release/')
        from (project.zipTree('libs/aaa.jar'))
        from (project.zipTree('libs/bbb.jar'))
        from (project.zipTree('libs/ccc.jar'))
        destinationDir = file('build/lib')
    }


domob_android_sdk.jar 是要生成的Jar包的名称


build/intermediates/classes/release/  是把该文件夹下的所有class文件都打包到 domob_android_sdk.jar 下

aaa.jar,  bbb.jar , ccc.jar 都是要打SDK工程下libs 中的Jar包

destinationDir = file('build/lib') 是生成的Jar包的位置


gradle 有自己的语法 makeJar 是任务名称,可以在gradle 中看到 ,type 是生成Jar形式,还有比较常见的 Copy,Delete。结构大概如下图




点击Android Studio右侧的gradle,然后再找到打包的工程,即可看到Tasks,里面包括other在other 中makeJar 这个任务就可以找打了,点击 makeJar ,运行成功就生成完整的Jar,包括工程中的class文件,libs下的 Jar 相关的class






评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值