AndroidStudio 用Gradle把Moudle打成jar包

本文介绍如何使用 Android Studio 和 Gradle 将 Module 打包成 Jar 文件。通过在 build.gradle 中添加特定任务,并执行 Gradle 命令,可以将包含第三方依赖的 Module 打包为 Jar 文件供其他项目使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明:

AndroidStudio 把Moudle打成jar包,使用Gradle命名配置要打包的内容,然后使用命令行执行打包。

大哥们写文章很累,转载请说出处呀!AndroidStudio 把Moudle打成jar包

项目结构:

juhepay是项目,juhepaysdk是这个项目依赖的Moudle,目的是吧juhepaysdk大成jar包,放到app的libs下面能继续使用。

步骤:

1、首先在juhepaysdk(你要打包成jar的Moudle)下面的build.gradle里面写入要打包的语句:

build.gradle:在android{ }里面添加如下代码

 

//打jar包
    // Copy类型
    task makeJar(type: Jar) {
        archiveName = 'baofoo-juhepay-v1.0-demo.jar' //最终jar包的名称
        from(project.zipTree('build/intermediates/bundles/release/classes.jar')) //需要打的juhepaysdk的编译文件
        from(project.zipTree('build/intermediates/bundles/release/libs/banksdk.jar')) //需要打的juhepaysdk所以来的jar包
        from(project.zipTree('build/intermediates/bundles/release/libs/libammsdk.jar')) //需要打的juhepaysdk所以来的jar包
        destinationDir = file('build/libs') //jar包输出路径
    }
    makeJar.dependsOn(build) //必须写的配置

然后在AndroidStudio-Terminal中输入命令:
./gradlew makeJar
或者在Android Studio右侧 Gradle - 要打包的module - Tasks - ohter - 双击makeJar
项目就会执行命令,最终会在juhepaysdk-build-libs下面生成baofoo-juhepay-v1.0-demo.jar包。

 

2、上面的操作的截图

命令行执行最终出现:

 

这样就jar包就打成了。

命令行原理:

其实打包的原理就是把Moudle(juhepaysdk包)运行编译后的classes.jar文件改个名字变成自己的jar包。

如果你的Moudle(juhepaysdk包)没有依赖第三方jar包,你不用操作操作上面的步骤,不用写命令执行命令,直接把classes.jar拷贝走就可以直接使用了。

但是大部分的Moudle(juhepaysdk包)会依赖第三方库,例如微信支付等jar包,这个时候就不能单单的把classes.jar打包走这么简单了,还需要把这些第三方库一起打进去。

这里我遇到了一个大坑:

最早我直接把from的地址携程libs下面的jar文件了,这样打成的jar包会出现包冲突,如下错误打包方式:

而是应该把编译好的第三方jar包和classes.jar一起打进jar包,下面是正确的打包方式:

至此打包完成,真的很浪费时间,还是以前的Eclipse使用的工具直接打包简单。

出错坑二:

如果在运行 gradlew makeJar 命令时出现如下错误(mylibrary为我的library库的名称):

 

Execution failed for task ':mylibrary:lint'.
> Lint found errors in the project; aborting build.
则在mylibrary目录下的build.gradle文件中,加入下面的代码块(注意代码块所在的位置),重新执行 gradlew makeJar 命令即可:

 

 

lintOptions {
       abortOnError false
   }

 

注释:打包命令task...放在android里面和外面都可以!

 

或者用系统自带的工具执行命令:

找到你的Module下面的build.gradle,右侧工具Gradle,找到对应Module下面的makejar双击执行

 

PS~代码另一种写法:

 

task makeJar(type: Copy) {
	delete 'build/libs/IMAF.jar'
	from('build/intermediates/bundles/release/')
	include('classes.jar')
	into('build/libs/')
	rename ('classes.jar', 'IMAF.jar')
}

这种写法和上面的写法第一排区别是:这里用的Copy只是把classes.jar包拷贝成IMAF.jar包了,适合没有以来的Moudle项目,如果你的Moudle有依赖,则还是用Jar命令吧!

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Beluga_白鲸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值