Android 编程下如何修改 jar 文件的包名
首先我们要说说为什么要修改 jar 文件的包名,jar 包我们会非常高频率的使用,尤其是用一些其他三方库的时候,往往把 java 代码打包成 jar 文件,方便项目依赖使用。笔者在开发过程中遇到过一些问题,是由于 jar 文件里面的包名和项目或者运行时环境的引用文件包名上存在冲突导致的,这时候我们修改 jar 文件的包名是一个比较快速有效的解决办法。举两个例子,是笔者亲身经历的两个情况。
- Gson库:这个相信很多人都在使用,但是直接导入 gson 的 jar 包,在 HTC Desire HD 这款手机上会抛出异常(TypeNotFoundException)
- Jackson库:这也是个 json 解析的,我们在做苹果推送后台的时候,后台用 java 写的,使用 java-apns 库,依赖于 Jackson,然后运行就会抛出异常,具体原因没有查,初步怀疑包名冲突,修改之后就解决的。
下面介绍如何修改jar文件的包名,需要用到一个小工具,叫做 jarjar.jar
这里我们以 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 编程下如何修改 jar 文件的包名的更多相关文章
- C#实现把指定文件夹下的所有文件复制到指定路径下以及修改指定文件的后缀名
1.实现把指定文件夹下的所有文件复制到指定路径下 public static void copyFiles(string path) { DirectoryInfo dir = new Directo ...
- Android Studio下添加引用jar文件和so文件
博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 博客园: 追风917 安卓开发中我们常会遇到jar文件和so文件的引用,下面介绍下在as下如何添加使用,这里以百度地图s ...
- 批量修改java文件的包名
需求:我复制进批量的java文件,但是包名需要用现在创建的包名 导入进来时,由于包名不一致会报错 解决办法,点击包名鼠标右键>Refactor>Rename 结果如下ok:
- Android SDK 更新时修改hosts文件仍然无法更新,可试试这个方法……
Android SDK 更新时修改hosts文件仍然无法更新,此时必定万分蛋疼.在hosts文件中更换了各种ip,仍然解决不了!!!!!!!!!!!!!!? 第一步: 打开此软件,等待服务器连接 第二 ...
- windows下快速修改host文件
windows下快速修改host文件 win+r 输入 notepad c:\Windows\System32\drivers\etc\hosts
- 【Android Studio安装部署系列】二十七、Android studio修改项目名称和包名
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 实际项目开发中可能碰到项目名称写错了或者需要修改,而且包名可能也想要修改,那么如何操作呢. 本文是在Android Studio3. ...
- Android Studio修改项目中整体包名
莫名的需求,要把之前的apk分成三个不同的apk,还要在应用市场能够上线,麻麻滴这样一听那还不要各个apk包的包名不同以及apk签名文件也不同嘛(签名文件一般也用不同,为防止上线冲突嘛).所以就亲自尝 ...
- Android 编程下通过 zipalign 对 APK 文件进行优化
zipalign zipalign is an archive alignment tool that provides important optimization to Android appli ...
- android studio导入 so ,jar 文件。
环境为: Android Studio 1.0.2 如果是jar文件的话,请直接拷贝jar文件到项目的libs文件夹下,然后运行:Sync Project with Gradle Files.如下图2 ...
随机推荐
- NBUT1541 Rainwater 题解
http://cdn.ac.nbutoj.com/Problem/view.xhtml?id=1541 When rain, nocLyt discovered a magical phenomeno ...
- ReactJS入门学习一
ReactJS入门学习一 阅读目录 React是什么? React如何制作组件? 理解组件属性props 理解页面中如何渲染数据的 理解从服务器端获取数据及理解state的 回到顶部 React是什么 ...
- The Dragon of Loowater
The Dragon of Loowater Once upon a time, in the Kingdom of Loowater, a minor nuisance turned into ...
- 备份还原mysql数据库
Windows下cmd命令行中备份还原mysql数据库 先cmd 上cd 到mysql的安装bin目录下,然后再运行下面的命令. 例如:cd C:\Program Files\MySQL\MySQL ...
- window.parent与window.openner 之前的总结
今天总结一下js中几个对象的区别和用法: 1.首先来说说 parent.window与top.window的用法 "window.location.href","loca ...
- jstack命令详解
jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使 ...
- bootstrap的select2校验及不影响原来的格式
<style> .has-error .select2-choice, .has-error .select2-choices, .has-error.simple .select2-ch ...
- 70 数组的Kmin算法和二叉搜索树的Kmin算法对比
[本文链接] http://www.cnblogs.com/hellogiser/p/kmin-of-array-vs-kmin-of-bst.html [分析] 数组的Kmin算法和二叉搜索树的Km ...
- iOS 使用interface builder 创建太复杂的constrains时容易产生crash
今天写程序,遇到了crash,在界面初始化时不会有,想切换到别的tab页就报错了.主要内容如下: Cannot find an outgoing row head for incoming head ...
- Java for LeetCode 062 Unique Paths
A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...