AndroidStudio 用Gradle把Moudle打成jar包
说明:
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命令吧!
AndroidStudio 用Gradle把Moudle打成jar包相关推荐
- gradle打成jar包报错 错误: 找不到或无法加载主类 App(已经配置过主类)
文章目录 将gradle打成jar包(包括依赖) 运行jar包 报错 原因(src自己手动创建的) 解决(添加src目录) 将gradle打成jar包(包括依赖) jar {manifest {att ...
- 手动将web项目的class文件打成jar包,手动打jar包,java -cvf,IDE打包底层指令
手动将web项目的class文件打成jar包. 我们的项目在使用IDE进行编译后,在项目的target目录下将会生成class文件.我们可以将class文件打成jar包. 使用的到命令为: 在targ ...
- idea将项目打成jar包
在用jmeter做压测时,需要将项目打成jar包放至在如下目录 /Users/admin/Documents/software/apache-jmeter-5.1.1/apache-jmeter-5. ...
- 打成jar包_keras, tensorflow模型部署通过jar包部署到spark环境攻略
这是个我想干很久的事情了.之前研究tensorflow on spark, DL4j 都没有成功.所以这里首先讲一下我做这件事情的流程.模型的部署,首先你得有一个模型.这里假设你有了一个keras模型 ...
- Java如何读取JAR包外的properties文件及打成jar包后无法读取到jar包内的properties文件
项目中,经常把一部分功能独立出来,做一个java project,然后打成jar包供其他项目引用.这时候,如果jar包中需要读取配置文件信息,则很少把该配置打进jar包,因为它不方便修改,更多都是采 ...
- SpringBoot打成jar包cmd中运行时修改配置文件的值
场景 若依前后端分离版手把手教你本地搭建环境并运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662 在上面 ...
- MobileIMSDK怎样将Java服务端运行起来以及打成jar包运行
场景 MobileIMSDK: https://gitee.com/jackjiang/MobileIMSDK MobileIMSDK是一套专为移动端开发的原创IM通信层框架 注: 博客: https ...
- AS编写sdk并打成jar包供其它APP调用
如果sdk中涉及res下面的资源注意package路径. 1. Android Studio后,结合gradle来配置生成jar 包. gradle在构建的时候,会对各个module的class文件打 ...
- Linux运行hadoop命令,将hadoop程序打成jar包,在linux下以命令行方式运行(例如单词计算程序)...
自定义Mapper import java.io.IOException; import org.apache.hadoop.io.LongWritable; import org.apache.ha ...
最新文章
- 1数字图像获取:1.2图像灰度直方图
- part.write java_小白向:web中利用request.getPart()上传文件到服务器
- 随记(六)--计算代码运行所需时间
- 《炉石传说》架构设计赏析(4):Asset管理
- matlab编程 英文翻译,MATLAB编程,MATLAB programming,音标,读音,翻译,英文例句,英语词典...
- ADO+MFC数据库编程常用语句
- 一天一工程总结系列-7.2
- psp android 模拟器,安卓psp模拟器
- setheader是什么意思_HTTP 请求头 响应头信息含义
- hibernate使用Query进行查询
- centos Iptables学习笔记
- 屏幕录像制作gif动态图
- python常用库安装网址
- 软件工程-白盒测试(实验报告)
- C++播放音频mav文件和mp3文件
- AMS1084电路图
- nw.js 软件推荐:AxeSlide斧子演示:PPT的另一种可能(转)
- 大数据综合案例大作业
- 简述一下面向对象的三大特性
- Unity 游戏黑暗之光笔记第五章 背包系统的实现
热门文章
- HCL动态抓包设置流程教学
- 什么是非抢占式和抢占式调度方式?抢占式调度方法和非抢占式调度方法有哪些?
- 微信小程序:土味情话恋爱话术
- Echarts地图-全国主要城市空气质量
- 空气质量数据网页爬虫加数据处理
- 读取以下4位同学的成绩并用一个数据框变量pd保存。对数据框变量pd进行切片操作,分别获得小红、张明、小江、小李的各科成绩,它们是4个数据框变量,分别记为pd1、pd2、pd3、pd4
- 读书笔记1.2—《时间管理:如何充分利用你的24小时》—让你时间发挥最大效用
- during怎么念_during怎么读音英语(during中文谐音)
- C++:对TXT文件进行读写
- autojs与java开发的手机投屏,可在电脑操作手机