Android手動打包:jar某目錄下存在兩個同名(不區分大小寫)class文件,解壓後如何再打包回dex

問題:由於手動打包成apk,某個jar文件需要修改(刪除、添加),因此把它解壓出來,但是windows不區分大小寫,jar裏同目錄下只有大小寫區分的同名class文件,後解壓的會覆蓋前面的,在生成dex文件的時候會報錯:

com.android.dx.cf.iface.ParseException: class name (com/abc/f/j) does not match path (com/abc/f/J.class)

解決辦法:把jar文件裏的同名文件分別解壓到不同的目錄,然後在生成dex的時候,把這些目錄都加入進來,生成的dex裏就包含了所有的文件;


爲什麼jar文件裏會有僅大小寫不一樣的同名class文件呢?

主要都是因爲在class文件比較多的情況下混淆的時候生成的,一般不會人爲創建;爲了不生成只有大小寫區分的同名文件,在混淆的時候可在obsfucation這一步選項中,去掉“Use Mixed-case class names”前面的對號,詳情可參考http://blog.csdn.net/qysh123/article/details/18048969;

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