android studio如何导出jar包以及如何将多个jar包合并

android studio现在jar包方式的引用可能越来越少,大部分都是通过gradle引入github项目依赖即可,不过今天还是讲一讲jar包的导出和合并,算是记录下吧。

一、创建一个新的library项目,项目名为mylibrary。找到build.gradle文件,文件第一行为:

apply plugin: 'com.android.library'
这是标识这个项目为library项目。

    其实只要你的library项目运行过就会在\build\intermediates\intermediate-jars目录下面找到生成的debug和release版本的classes.jar(不同的android studio可能生成的路径不一样,可通过文件夹的搜索找到,我的android studio的版本为3.0.1),如图:


接下来其实就是对这个classes.jar,重命名打包。还是在build.gradle文件下,写入如下脚本:

task makeJar(type: Copy) {
    //删除存在的
    delete 'build/libs/mysdk.jar'
    //设置需要拷贝的文件
    from('build/intermediates/intermediate-jars/release/')
    //将classes.jar放入build/libs/目录下
    into('build/libs/')
    //将classes.jar放入build/libs/目录下
    //(我们只需要取classes.jar这个文件)
    include('classes.jar')
    //重命名
    rename ('classes.jar', 'mysdk.jar')
}
makeJar.dependsOn(build)

 最后打开android studio的Terminal控制台,输入gradlew makeJar,等待执行一段时间出现:BUILD SUCCESSFUL字样就说明导包成功了。然后可以在上面配置的build/libs/目录下找到mysdk.jar文件就是导出的jar包了。

二、上面导出的jar包是不会将该library项目依赖的第三方jar包打进去的。那么如果我们不把第三方的jar打进我们导出的jar包中,别人引用我们的jar包就会出现NoClassDefFoundError错误,这就很尴尬了,那么如何把第三方jar包打进我们的jar包里面呢。这就要用到一个工具了---Apache ant.

这里是下载地址:https://github.com/alibaba/fastjson/releases

解压或者安装后可以得到以下目录:


同时我们需要配置下系统环境变量:这个大家应该都知道吧:


然后在Path变量值后面加入:%ANT_HOME%\bin;%ANT_HOME%\lib;


然后确定,打开dos,输入ant,如果出现


那么恭喜你,ant安装和配置成功了,接下来就是这个build.xml文件了


再回到dos,输入命令ant -buildfile E:\apache-ant-1.9.7\build.xml.出现BUILD SUCCESSFUL,说明合并成功了然后在目录e:/jar下面查看我们合并后的jar包


然后将together.jar拖入


中你可以看到:


至此,jar包的合并完成。

猜你喜欢

转载自blog.csdn.net/xxcncsg/article/details/80664849