問題:由於手動打包成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;