AS 3.1 项目打包成jar或aar
1.首先明白一个道理。
Android Studio编译的时候会自动将项目生成jar和aar的,我一开始以为jar需要自己单独生成,其实AS已经自动生成了,网上找的很多资料都是一个复制的过程而已。
只不过在AS3.1以前是放到build/intermediates/bundles文件夹里面。
然而现在换成了build\intermediates/packaged-calsses文件夹里面了,以后也不知道会放哪儿了,这是一坑。
2.通常第一步都是一个新建一个module。
如果直接从已经完成的项目出发,可以直接修改build.gradle第一行,改成apply plugin:'com.android.library';
但是这么一修改,可能会出现很多错误,什么参数错误,什么资源文件有问题等。
保险起见,从“0”开始。
新建一个module,注意选择Android Library类型。
把一些需要打包的文件统统写到这个library里面,如果有什么错误的话,就一个一个去解决吧。
将module完善之后,就开始打包了。
3.在module的build.gradle配置生成jar的方案。
在文末添加如下代码:
//修改jar名字+将指定jar生成的地方
task makeJar(type:Copy){
//如果之前存在,则先删除
delete 'build/libs/test.jar'
//设置拷贝的文件
from('build/intermediates/packaged-classes/debug/')
//生成jar包后的文件目录位置
into('build/libs/')
//include,exclude参数来设置过滤
include('classes.jar')
//重命名
rename('classes.jar','test.jar')
} makeJar.dependsOn(build)
4.利用命令行执行该方案。
在AS最下方的Terminal中输入命令即可。
如果是MAC电脑:./gradlew makeJar
如果是Windows电脑: gradlew makeJar
如果报错,一般都是没有配置gradle环境,谷歌一下解决方案呗。
幸运的话,可以在build/libs文件夹下看到生成的jar文件了。
5.简单理解一下jar和aar的区别吧。
在Build Success后,在module的build/outputs/aar文件夹下会有一个aar文件。
在module的build/libs或自己定义的其他位置下会有一个jar文件。
二者区别:
jar: 只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。
aar: 包含jar包和资源文件,如图片等所有res中的文件。
aar编译完就自动生成了,所以不同担心资源问题。
6.如何使用aar文件。
很简单。
i.将aar文件拷贝至目标项目的app/libs文件夹下。
ii.在app下的build.gradle中添加如下代码: 
分别是这两块:
repositories{
flatDir{
dirs 'libs'
}
}
implementation(name:'librarydemo-release',ext:'aar')
Sync Now一下,如果没有报错,应该就是成功引用了。
看一下依赖的外部类,已经有了刚才我们引用的library了。

7.如何引用jar文件。
这个网上搜一大把。方法也是类似的,更加简单。
先将jar拷贝至目标项目的app/libs文件夹下。
mac电脑操作如下:右键->add as library->选择当前mudule->OK.
windows电脑类似的。
8.其实jar文件也是可以使用资源文件的。
稍微有点麻烦。
首先将jar包中用到的资源文件放到自己的项目中。
然后在自己的项目中利用反射获取。参考文章点我。
AS 3.1 项目打包成jar或aar的更多相关文章
- Eclipse中将含有图片资源的项目打包成jar文件
前言: 最近学了GUI编程和UDP协议,心血来潮想做一个局域网内的聊天软件,前期都还算顺利,直到后来将整个项目打包成jar文件时遇到了困难.如图: 自己设置的图标不见了,但是也没有默认的图标,说明图片 ...
- 将项目打包成jar,如何又将jar还原成项目
一.将项目打包成jar 第一步: 选择项目,鼠标右键,选择export ,出现如下 接下来就是点击Next,Next,最后点击Finish 后 会生成jar 二.将jar还原成项目 第一步 用反编译工 ...
- (3)Maven快速入门_3在Eclipse中创建Maven项目打包成jar
Eclipse中创建Maven项目 new ---> maven project ----> next 如下 普通java项目 选择 如下 quickstart 创建项目 : 输入 G ...
- AndroidStudio项目打包成jar
AndroidStudio项目打包成jar 前言:在eclipse中我们知道如何将一个项目导出为jar包,现在普遍AndroidStuido开发,这里一步一步详加介绍AS项目打包成jar,jar和ar ...
- SpringBoot项目打包成jar后,启动脚本
将springboot项目打包成jar后,上传至服务器,每次都需要手敲命令,重新部署项目,可将这些命令写入脚本中,直接运行. 启动脚本(start.sh): CUR_PATH=$(cd "$ ...
- 用gradle把springboot项目打包成jar
``` 用gradle把springboot项目打包成jar ```### build.gradle 中添加 buildscript { repositories { mavenLocal() mav ...
- maven将自己的springboot项目打包成jar包后,作为工具包引入其他项目,找不到jar中的类
将springboot项目打包成jar包,作为工具包导入项目后,找不到jar中的类. 原因是:springboot项目使用了自动的打包插件. 原先的插件配置: <build> <pl ...
- Springboot项目打包成jar运行2种方式
最近公司有个项目需要移植到SpringBoot框架上,项目里面又有许多第三方jar包,在linux服务器上最方便的就是用jar的方式来运行SpringBoot项目了,因此我研究了2种打jar包的方式, ...
- maven把项目打包成jar包后找不到velocity模板的bug
使用springmvc 开发时候要实现发送velcotiy模板邮件,在配置正常后,在本地测试正常后,使用maven打包成jar包后,报以下错误, Caused by: org.apache.veloc ...
随机推荐
- 贝叶斯网络(Bayesian network))简介(PRML第8.1节总结)概率图模型(Graphical models)
转:http://www.cnblogs.com/Dzhouqi/p/3204353.html 部分图为手写,由于本人字很丑,望见谅,只是想把PRML书的一些部分总结出来,给有需要的人看,希望能帮到一 ...
- 使用Swagger处理Api的显示与隐藏
一.在SwaggerConfig.cs中配置如下: c.DocumentFilter<ShowApiFilter>(); c.DocumentFilter<HideApiFilter ...
- 关于tcp状态及一些延展
1.常用的三个状态是:ESTABLISHED 表示正在通信,TIME_WAIT 表示主动关闭,CLOSE_WAIT 表示被动关闭. TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断 ...
- D3——基本知识点
选择器: d3.select - 从当前文档中选择一个元素 d3.selectAll - 从当前文档中选择多个元素 selection.append - 创建并追加一个新元素 selection.at ...
- 理解JavaScript中的去抖函数
何为去抖函数?在学习JavaScript去抖函数之前我们需要先弄明白这个概念.很多人都会把去抖跟节流两个概念弄混,但是这两个概念其实是很好理解的. 去抖函数(Debounce Function),是一 ...
- IBM websphere MQ远程队列的简单配置
原理: 1.远程队列分发送方和接收方 2.接收方配置: 接收方配置要先拿到对方的发送通道配置,接收方的队列名称必须和远程发送方的队列名称一致,告诉远程发送方,你的地址,队列管理器名称等信息,在通道中建 ...
- Ajax三级联动操作的js代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- BZOJ2822:[AHOI2012]树屋阶梯(卡特兰数,高精度)
Description 暑假期间,小龙报名了一个模拟野外生存作战训练班来锻炼体魄,训练的第一个晚上,教官就给他们出了个难题.由于地上露营湿气重,必须选择在高处的树屋露营.小龙分配的树屋建立在一颗高度为 ...
- Gluon sgd
from mxnet import nd,autograd,init,gluon from mxnet.gluon import data as gdata,loss as gloss,nn num_ ...
- 小知识积累-C++使用tinyxml解析Xml内存泄漏问题
项目中需要用到C++解析XML,网上搜到tinyxml这么个开源库,就用了下试试,创建对象后内部自带Clear方法,但在循环测试的时候(刚用C++做项目不久,不会什么特别的内存泄漏测试工具,于是就写个 ...