現在這是一個非常棘手的問題!
在別的之前,請先解壓縮jar文件,看看Proguard是否混淆了BouncyCastle的類文件?既然你已經包含了bouncycastle jar文件作爲庫,並且裏面有類文件,所以我認爲Proguard沒有混淆這些佔用空間的類文件。
反正我剛剛下載了彈性城堡jar文件,可以看到它純粹由類文件組成,所以沒有額外的文件,我們可能會刪除並擺脫以減少生成的jar文件。現在
如果你真的想減少接着往下看,我要產生兩個解決方案,他們兩人都是有風險的:
解決方案1 (不推薦):
這是容易,但我不會推薦,它可能會導致運行時異常或錯誤: 解壓縮bouncycastle jar文件。然後導航到該目錄的src \組織\ BouncyCastle的 正如你剛纔提到您只使用下面的包這些 org.bouncycastle.util。* org.bouncycastle.crypto。*
現在,這裏我會假設這兩個包內的源代碼不依賴於其他包內的源代碼/類文件。
現在刪除其他目錄,即「asn1」,「bcpg」。在這個階段,我不會成爲屠夫並刪除所有東西,但會刪除一對,然後再刪除其他人,如果它工作的話。
現在我們將重新生成jar文件。之後已刪除的目錄,現在回去的根目錄下,你會看到其他目錄,如 META-INF 組織 utils的
這是你需要這個正確的,否則jar文件的重要一步不管用。選擇在根目錄和 然後右鍵點擊 - 所有的目錄>發送到拉鍊
一旦壓縮文件被創建,然後重命名爲具有* .zip文件的* .jar而不是
- 的大小該jar文件將會減少,現在將該jar文件包含在您的項目中。看看它是否編譯並執行。如果在運行系統中正常工作,請檢查您的功能 。如果一切順利,那麼你就完成了。 現在您可以重複上述步驟來刪除更多目錄以減少jar文件大小。
解決方案2:
- 下載您所使用的BouncyCastle的jar文件的源代碼。您將不得不從項目中刪除jar文件。
- 將源代碼包含到項目中。建立該項目,看看你是否沒有收到任何編譯錯誤。你必須確定在這個階段 你沒有使用原始的jar文件,只使用代碼。
- 現在開始刪除包含您不需要的代碼的包。繼續重建項目,它不會出現編譯錯誤, ,如果它確實如此,那麼你不想刪除那個包並且繼續刪除其他包。
- 一旦這個butchring完成後,生成項目並生成jar文件。
- 通過這種方式,Proguard會混淆充氣城堡的代碼,並且由於刪除了大部分不需要的代碼,因此應該在生成的jar文件中減少大量的代碼。
添加了proguard標記,因爲它應該只是proguard的正確選項的一個問題,以便將其僅縮小到您正在使用的類。 – 2013-02-20 14:51:32