如題,今天在打包項目的時候各種報錯,在debug的時候沒有任何問題,那麼很快定位到問題所在---第三方.so文件混淆出問題了....
項目是在AS中編譯的一個module,依賴了一個以前在Eclipse中開發的library,該library通過import module導入到as作爲一個依賴庫的module
想到需要添加混淆忽略,直接在library中編輯proguard-rules.pro,在編譯過程中報各種文件找不到....總之折騰了半天,可能文件結構較複雜,因爲在import module時也修改了部分結構,其中有各種第三方jar包與.so庫....
最後戰略性放棄....
那麼直接在library中忽略不成功,可否在app項目中直接忽略library中的.so文件呢?
最後正解 - -
在app的proguard-rules.pro忽略依賴庫中的文件寫法如下:
-libraryjars ../XXX(此處爲library名稱)/src/main/jniLibs/armeabi/xxxxx.so
-libraryjars ../XXX(此處爲library名稱)/src/main/jniLibs/armeabi-v7a/xxxxx.so -libraryjars ../XXX(此處爲library名稱)/src/main/jniLibs/x86/xxxxx.so
同理依賴庫中jar包在app 中忽略混淆的寫法
-libraryjars ../XXX(此處爲library名稱)/libs/xxx.jar -libraryjars ../XXX(此處爲library名稱)/libs/xxx.jar
最後溫馨提醒:
shrinkResources true
(該屬性爲打包時是否自動刪除無用的資源與代碼,慎用!!據說有人因爲這個屬性導致app崩潰..此處不詳細討論..)