需求就是把写好的工具类封装成jar包方便第三方客户使用。
我是在android studio3.3.2上进行的操作。
1.新建library
建完会弹出选择框选择Android Library ,然后next,给module起个名字,最后finish就可以了。
2.现在我们就开始在新建好的library内的build.gradle文件中,配置相关代码
在android{}内写的
注:ykprinterlib名字自己随意起的
task makeJar(type: Copy) { delete 'build/ykprinterlib.jar' //删除之前的旧jar包 from('build/intermediates/packaged-classes/release/') //从这个目录下取出默认jar包 into('build/libs/') //将jar包输出到指定目录下 include('classes.jar') rename('classes.jar', 'ykprinterlib.jar') //自定义jar包的名字 } makeJar.dependsOn(build)
3.在android studio 下面的Terminal里输入gradlew makeJar生成jar包
在ykprintlib/build/intermediates/packaged-classes/release/目录下可以看到classes.jar
在ykprinterlib/build/libs目录下可以看到生成的ykprintlib.jar文件
4.这样jar包就可以用了。但是如果moudle里有一个jar包,那么这个jar包是不会在自己生成的jar包里的,就会导致程序调用出错
于是就有了jar包合并这么一步
5.使用Apache Ant进行jar包合并Ant下载地址
6.配置ant的环境变量新建ANT_HOME 变量值D:\apache-ant-1.10.5,我的是保存在D盘下的
找个path变量编辑 加上D:\apache-ant-1.10.5\bin,我的因为用%ANT_HOME%\bin不行
在找到classpath变量加上D:\apache-ant-1.10.5\lib;这个就可以了
7.来测试一下ant是不是可以用了输入cmd 输入ant
看到这个提示就成功了,接下来就开始合并吧
8.新建一个build.xml文件,我就是在D:\apache-ant-1.10.5这个目录下建的,接下来写上配置
这里面是不能有注释的 ykprint可以改成你自己想起得名字,D:\jar是存放jar包的地方,
ykprint-1.0.jar是合并后jar包的名称 zipfileset里就是放要合并的jar包,可以是多个
<?xml version="1.0" encoding="utf-8" ?> <project name="ykprint" basedir="D:\jar" default="makeSuperJar"> <target name="makeSuperJar" description="description"> <jar destfile="ykprint-1.0.jar"> <zipfileset src="icod_3.1.1.jar"></zipfileset> <zipfileset src="ykprinterlib.jar"></zipfileset> </jar> </target> </project>
9.下面我们就把library封装的jar包和library内libs内的jar包都拷贝到D:\jar目录下,然后在cmd操作指令,进行jar包合并
现在就可以在D:\jar下看到我们合并好的jar包了,这样就可以放到我们的项目中进行使用了