博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android项目实战(二十四):项目包成jar文件,并且将工程中引用的jar一起打入新的jar文件中...
阅读量:5795 次
发布时间:2019-06-18

本文共 2364 字,大约阅读时间需要 7 分钟。

前言:

关于.jar文件:

平时我们Android项目开发中经常会用到第三方的.jar文件。

其实.jar文件就是一个类似.zip文件的压缩包,里面包含了一些源代码,注意的是.jar不包含资源文件(res、图片等)

---------------------------------------------------------------------------------------------------------

一、首先学习如何在Android studio中将android项目打成.jar文件

1、在app目录下的 build.gradle文件中 添加如下红色字体代码:

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.3.0' } task makeJar(type: Copy) {
delete 'build/libs/mysdk.jar' from('build/intermediates/bundles/release/') into('build/libs/') include('classes.jar') rename ('classes.jar', 'myjar.jar') } makeJar.dependsOn(build)

2、生成.jar文件

在Android studio 的下面有 Terminal 选项,可以看到这个命令行的形式

我们在此 输入 “gradle makeJar” 然后回车。等待片刻,变会生成 .jar文件

该.jar文件的地址为:

build/intermediates/bundles/release/

 

至此,我们就可以将生成的.jar放在别的项目中使用了。

 

二、深入探索

问题:

存在这么一种情况:

我们要打包的android项目中已经引用了一个或多个第三方.jar文件。那么我们按上面的方法打成.jar文件,在引入到别的项目中使用中,

会发现出现错误:

NoClassDefFoundError

定位到错误代码位置,会发现 生成.jar文件的原始android项目中引用的第三方.jar文件中的类找不到。

这里可以猜测,使用上述方法将android项目打成.jar文件的过程中,并没有将android项目原来引用的第三方.jar文件也一起打入到新的.jar文件中。

可以测试一下,将android项目打成的.jar文件解压缩,会发现只有java代码相关文件,而没有原来android项目中引用的第三方.jar文件

 

解决方案:

1、首先 问题产生的原因就是 生成.jar文件的android项目原先引用的第三方.jar文件没有被打入到 新的.jar文件中

  那么我们想:怎么在android项目打成.jar文件的时候 顺带把 android项目引用的第三方.jar文化也一并打入到新的.jar文件?

试了几天,目前没有找到解决办法。。。此路不通

 

2、既然android项目原来引用的.jar文件打不进 要生成的.jar文件中去,我们是否可以手动的将android项目引用的第三方项目整合到android项目打成的.jar文件中去?

  即 将android项目打成的.jar文件和android项目自身引用的.jar文件合并成一个.jar文件

网上查询了一番: 可以使用 ANT 工具实现 将两个或多个.jar文件合并成一个.jar文件

Apache Ant是一个基于Java的生成工具。据最初的创始人James Duncan Davidson的介绍,这个工具的名称是another neat tool(另一个整洁的工具)的首字母的缩写。

实现步骤:

(1)、下载ANT,这个网上百度一堆

(2)、配置环境变量

  

(3)、检测是否配置成功

点击 开始 -> 运行 -> 输入cmd 

打开命令窗口,

输入如下命令:ant 

如果出现如下内容,说明安装成功: 
Buildfile: build.xml does not exist! 
Build failed 
注意:因为ant默认运行build.xml文件,这个文件需要我们创建。 
如果不想命名为build.xml,运行时可以使用 ant -buildfile test.xml 命令指明要运行的构建文件。

(4)、编辑xml文件,命名随意,这里命名build.xml

打开文件编辑:

//不用改
//不用改
//合并后的jar文件的名称
//
标签的都是要参与合并的子jar包

(5)、命令行执行合并操作,输入第一行命令,红色部分是我们编辑的build.xml文件的地址

    

 

(6)、打开build.xml文件中  basedir="H:\soft\jar" 该目录,即可看到合并后的jar文件。

 

转载地址:http://xrbfx.baihongyu.com/

你可能感兴趣的文章
LSTM之父于尔根·施密德胡伯访谈:早在25年前,人工智能就具有意识了
查看>>
数据中心数据和存储网络合并的痛点
查看>>
不同Hadoop上的SQL数据库引擎如何适配BI工作
查看>>
年薪至少20万,大数据人才到底为什么值钱?
查看>>
14个优秀 JS 前端框架、库、工具及其使用时机
查看>>
拥抱API经济:教你三步使用SDK玩转阿里云API
查看>>
《MySQL技术内幕:InnoDB存储引擎第2版》——1.1 定义数据库和实例
查看>>
TensorFlow教程之API DOC 6.1.16 Struct tensorflow::ThreadOptions
查看>>
苹果叫板FBI:看看大家如何选边站队
查看>>
全域营销引领设计师职能进化
查看>>
《 产品设计思维:电商产品设计全攻略》一一1.3 有效的设计框架
查看>>
广告?案例?技术?OA选型你该看重什么
查看>>
连遭“双反” 光伏产业如何应对?
查看>>
Facebook学微信?玩不了游戏都不好意思叫聊天软件
查看>>
开源IndexR:如何对上千亿的数据进行秒级探索式分析
查看>>
Nvidia不是依赖“核弹”的显卡制造厂: 正建自主帝国
查看>>
三星被指盗取FinFET芯片专利技术 将被起诉
查看>>
大数据,并非越大越好?
查看>>
高铁视频监控系统必看五大要求
查看>>
英国政府启动价值3.61亿美元的清洁能源竞拍
查看>>