首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android ProGuard 混淆報錯「Can't process class」優化次數過多導致

     編輯:程式設計綜合問答

錯誤堆疊關鍵信息

Proguard returned with error code 1
...
Caused by: java.lang.RuntimeException
at proguard.classfile.io.RuntimeDataInput.readUnsignedShort...
at proguard.classfile.attribute.preverification.FullFrame.accept...

配置片段

-optimizationpasses 5

根本原因

ProGuard 的 -optimizationpasses 參數控制優化迭代次數。設置為 5 會導致某些複雜類(如包含 StackMapTable 的類)在多輪優化後字節碼結構損壞,引發 Can't process class 錯誤。

解決方案

將優化次數降低到 1 或 2:

-optimizationpasses 2

大多數項目在 1-2 次優化後已達到足夠的壓縮效果,且穩定性大幅提升。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved