说明:

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包相关推荐

  1. gradle打成jar包报错 错误: 找不到或无法加载主类 App(已经配置过主类)

    文章目录 将gradle打成jar包(包括依赖) 运行jar包 报错 原因(src自己手动创建的) 解决(添加src目录) 将gradle打成jar包(包括依赖) jar {manifest {att ...

  2. 手动将web项目的class文件打成jar包,手动打jar包,java -cvf,IDE打包底层指令

    手动将web项目的class文件打成jar包. 我们的项目在使用IDE进行编译后,在项目的target目录下将会生成class文件.我们可以将class文件打成jar包. 使用的到命令为: 在targ ...

  3. idea将项目打成jar包

    在用jmeter做压测时,需要将项目打成jar包放至在如下目录 /Users/admin/Documents/software/apache-jmeter-5.1.1/apache-jmeter-5. ...

  4. 打成jar包_keras, tensorflow模型部署通过jar包部署到spark环境攻略

    这是个我想干很久的事情了.之前研究tensorflow on spark, DL4j 都没有成功.所以这里首先讲一下我做这件事情的流程.模型的部署,首先你得有一个模型.这里假设你有了一个keras模型 ...

  5. Java如何读取JAR包外的properties文件及打成jar包后无法读取到jar包内的properties文件

    项目中,经常把一部分功能独立出来,做一个java  project,然后打成jar包供其他项目引用.这时候,如果jar包中需要读取配置文件信息,则很少把该配置打进jar包,因为它不方便修改,更多都是采 ...

  6. SpringBoot打成jar包cmd中运行时修改配置文件的值

    场景 若依前后端分离版手把手教你本地搭建环境并运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662 在上面 ...

  7. MobileIMSDK怎样将Java服务端运行起来以及打成jar包运行

    场景 MobileIMSDK: https://gitee.com/jackjiang/MobileIMSDK MobileIMSDK是一套专为移动端开发的原创IM通信层框架 注: 博客: https ...

  8. AS编写sdk并打成jar包供其它APP调用

    如果sdk中涉及res下面的资源注意package路径. 1. Android Studio后,结合gradle来配置生成jar 包. gradle在构建的时候,会对各个module的class文件打 ...

  9. Linux运行hadoop命令,将hadoop程序打成jar包,在linux下以命令行方式运行(例如单词计算程序)...

    自定义Mapper import java.io.IOException; import org.apache.hadoop.io.LongWritable; import org.apache.ha ...

最新文章

  1. 1数字图像获取:1.2图像灰度直方图
  2. part.write java_小白向:web中利用request.getPart()上传文件到服务器
  3. 随记(六)--计算代码运行所需时间
  4. 《炉石传说》架构设计赏析(4):Asset管理
  5. matlab编程 英文翻译,MATLAB编程,MATLAB programming,音标,读音,翻译,英文例句,英语词典...
  6. ADO+MFC数据库编程常用语句
  7. 一天一工程总结系列-7.2
  8. psp android 模拟器,安卓psp模拟器
  9. setheader是什么意思_HTTP 请求头 响应头信息含义
  10. hibernate使用Query进行查询
  11. centos Iptables学习笔记
  12. 屏幕录像制作gif动态图
  13. python常用库安装网址
  14. 软件工程-白盒测试(实验报告)
  15. C++播放音频mav文件和mp3文件
  16. AMS1084电路图
  17. nw.js 软件推荐:AxeSlide斧子演示:PPT的另一种可能(转)
  18. 大数据综合案例大作业
  19. 简述一下面向对象的三大特性
  20. Unity 游戏黑暗之光笔记第五章 背包系统的实现

热门文章

  1. HCL动态抓包设置流程教学
  2. 什么是非抢占式和抢占式调度方式?抢占式调度方法和非抢占式调度方法有哪些?
  3. 微信小程序:土味情话恋爱话术
  4. Echarts地图-全国主要城市空气质量
  5. 空气质量数据网页爬虫加数据处理
  6. 读取以下4位同学的成绩并用一个数据框变量pd保存。对数据框变量pd进行切片操作,分别获得小红、张明、小江、小李的各科成绩,它们是4个数据框变量,分别记为pd1、pd2、pd3、pd4
  7. 读书笔记1.2—《时间管理:如何充分利用你的24小时》—让你时间发挥最大效用
  8. during怎么念_during怎么读音英语(during中文谐音)
  9. C++:对TXT文件进行读写
  10. autojs与java开发的手机投屏,可在电脑操作手机