Android 編程下如何修改 jar 文件的包名

  原文地址 http://www.cnblogs.com/sunzn/p/4166353.html


首先我們要說說爲什麼要修改 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 包使用即可。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章