Android修改jar文件包名的方法分享

前言

jar 包我们会非常高频率的使用,尤其是用一些其他三方库的时候,往往把 java 代码打包成 jar 文件,方便项目依赖使用。

带来的问题是, 多个jar包容易出现包名冲突.

这时候我们修改 jar 文件的包名是一个比较快速有效的解决办法。

举两个例子,是笔者亲身经历的两个情况。

Gson库:这个相信很多人都在使用,但是直接导入 gson 的 jar 包,在 HTC Desire HD 这款手机上会抛出异常(TypeNotFoundException) Jackson库:这也是个 json 解析的,我们在做苹果推送后台的时候,后台用 java 写的,使用 java-apns 库,依赖于 Jackson,然后运行就会抛出异常,具体原因没有查,初步怀疑包名冲突,修改之后就解决的。

下面介绍如何修改jar文件的包名,需要用到一个小工具,叫做 jarjar.jar

jarjar.jar下载

下载地址:http://code.google.com/p/jarjar/downloads/list

这里我们以 gson.jar 为例,在 gson.jar 包目录下新建一个文本文件,名字随意,例如 rule.txt,写入下面的内容。

rule com.google.gson.** com.google.mygson.@1

上面写的就是修改规则,我们将包名中的 gson 修改为 mygson。打开命令行,输入如下命令。

java -jar jarjar.jar process rule.txt gson.jar mygson.jar

命令执行完毕,同目录下会多出一下 mygson.jar,这个就是修改包名之后的 jar 文件,我们项目导入这个 jar 包使用即可。

总结

以上就是这篇文章的全部内容了,希望本文的内容对各位Android开发者们能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

时间: 2024-10-23 09:30:47

Android修改jar文件包名的方法分享的相关文章

Android 修改host文件的3种方法

Android修改hosts文件的方法介绍 本文介绍三种Android手机修改hosts文 件的方法,但修改hosts文件一定要谨慎:Android手机hosts文件的换行符必须是n而不是windows的rn,使用Notepad++打开 hosts文件,依次点击菜单中的"视图–显示符号–显示所有字符",如果行末是LF就没问题,CR LF结束则需要替换所有的CR LF为LF. Android手机hosts文件路径:/system/etc/hosts 修改hosts方法一:需重启 修改ho

WIN7中修改Jar文件打开方式的方法

电脑中安装过像WinRar,Nokia PC套件之类,能修Jar文件的打开方式的程序后,一些在电脑上能直接运行的Jar文件就不能直接运行了,修改打开方式,但找不到直接打开的程序,自己人工找到安装目录中javaw.exe,但打开后提示,没有主类的问题,取消WinRar文件关联,但Nokia PC套件不能取消关联,还是不行.在网上找到一个方法,是建个bat文件,内容为:"javaw.exe的完整路径" -jar "%1".再修改打开方式的为该文件,成功,但有不足,总是弹

android杂记:C++文件的添加log方法分享_Android

1.添加头文件 复制代码 代码如下: #include <utils/Log.h>   //或者  #include <cutils/Log.h>  这个时候可以使用ALOGE/ALOGI/ALOGW 等方法打印出log 不过有些地方不能这么使用,因为依赖libutils libctuils库在mk文件见添加如下依赖编译即可 复制代码 代码如下: #LOCAL_MODULE := ... ...   #base_intermediates := $(call local-inter

android杂记:C++文件的添加log方法分享

1.添加头文件 复制代码 代码如下: #include <utils/Log.h>   //或者  #include <cutils/Log.h> 这个时候可以使用ALOGE/ALOGI/ALOGW 等方法打印出log 不过有些地方不能这么使用,因为依赖libutils libctuils库 在mk文件见添加如下依赖编译即可 复制代码 代码如下: #LOCAL_MODULE := ... ...   #base_intermediates := $(call local-inter

我的Android进阶之旅------&amp;gt;Android studio 如何修改工程的包名

关于用Android Studio修改Android APP的应用包名的问题,今天遇到了一个坑,这里记录一下. 这里用一个简单的Demo来展示在Android Studio中如何修改Android Project的包名. 需求 将应用的包名从com.oyp.test修改成com.csdn.test 未修改包名前,包名为:com.oyp.test 未修改包名之前的截图如下图所示: 1.AndroidManifest.xml文件中关于包名的定义如下: AndroidManifest.xml文件代码如

Android通过aapt命令获取apk详细信息(包括:文件包名,版本号,SDK等信息)

公司运维问我怎么在windows上安装模拟器,我你说你安装模拟器干什么?他说,我安装模拟器查看app的包名这些信息做统计. 我顿时想,有必要这样折腾么? 我然后就给他装了Android SDK通过build-tools下面的aapt.exe文件执行命令即可得到所有apk信息. aapt命令 aapt l[ist] [-v] [-a] file.{zip,jar,apk} List contents of Zip-compatible archive. aapt d[ump] [--values]

bat批处理批量修改文件扩展名的方法_DOS/BAT

有的时候我们可能会遇到,在一个文件夹内有很多个文件,我们需要修改这些文件的扩展名,当然我们可以一个一个的修改,可是如果有很多文件,那就很麻烦了,所以今天就教大家批量修改文件扩展名的方法,希望大家能够灵活运用. 这里假设你要把扩展名为.gif的文件都改成.jpg格式,那么具体方法如下: 1.首先进入需要改扩展名的文件夹内新建一个记事本 2.在记事本中输入如下内容 复制代码 代码如下: ren *.gif *.jpg 3.将记事本的扩展名改名为.bat 4.双击运行bat文件即可批量将该文件夹下的所

java spring-maven 项目中修改项目的包名后重新启动报错

问题描述 maven 项目中修改项目的包名后重新启动报错 原来项目运行时正常的,后来把com.fh.controller.information.picture.PictureController 和com.fh.service.information.picture.PictureService修改为com.fh.controller.information.PictureController 和com.fh.service.information.PictureService后出错 启动项目

Python实现批量更换指定目录下文件扩展名的方法_python

本文实例讲述了Python实现批量更换指定目录下文件扩展名的方法.分享给大家供大家参考,具体如下: #encoding=utf-8 #author: walker #date: 2013-12-06 #function: 深度遍历指定目录,更换指定扩展名 import os import os.path #读入指定目录并转换为绝对路径 rootdir = raw_input('root dir:\n') rootdir = os.path.abspath(rootdir) print('abso