Android Build使用Proguard和Gradle失败

时间:2013-09-16 16:56:54

标签: android gradle proguard

我最近将项目从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

1 个答案:

答案 0 :(得分:2)

ProGuard在Ant,Eclipse和Gradle中的确应该完全相同。您应该检查您的构建版本是否使用不同版本的ProGuard。您可以在控制台日志中看到该版本。如果您知道正在使用哪个ProGuard jar,您也可以输入java -jar proguard.jar来获取该版本。

错误消息表明ProGuard优化步骤中存在错误。希望错误发生在旧版本中,而不是在较新版本中。然后你可以简单地升级jar。否则,您可以在ProGuard's bug tracker上报告,最好有足够的信息来重现问题。要解决此问题,您可以使用选项-dontoptimize停用优化。