我最近将项目从eclipse / ant转换为使用Android Studio / Gradle。我的调试版本工作正常,但是当我尝试使用proguard启用发布版本时,它会因以下错误而失败
16:26:13.437 [ERROR] [system.err] Unexpected error while computing stack sizes:
16:26:13.438 [ERROR] [system.err] Class = [com/a/a/a/d/d]
16:26:13.438 [ERROR] [system.err] Method = [<clinit>()V]
16:26:13.438 [ERROR] [system.err] Exception = [java.lang.IllegalArgumentException] (Stack size becomes negative after instruction [143] swap in [com/a/a/a/d/d.<clinit>()V])
我已经为我的eclipse项目使用了相同的proguard.txt,并且它运行良好,因此它表明Gradle Android插件存在某种问题。有谁遇到过类似的问题?我的proguard配置 - http://pastebin.com/2gsNUmeD和完整的gradle输出http://pastebin.com/TAvMUSrR
答案 0 :(得分:2)
ProGuard在Ant,Eclipse和Gradle中的确应该完全相同。您应该检查您的构建版本是否使用不同版本的ProGuard。您可以在控制台日志中看到该版本。如果您知道正在使用哪个ProGuard jar,您也可以输入java -jar proguard.jar
来获取该版本。
错误消息表明ProGuard优化步骤中存在错误。希望错误发生在旧版本中,而不是在较新版本中。然后你可以简单地升级jar。否则,您可以在ProGuard's bug tracker上报告,最好有足够的信息来重现问题。要解决此问题,您可以使用选项-dontoptimize
停用优化。