2014-03-13 210 views
1

我目前正在Jenkins服务器上构建一个使用ANT的android应用程序。如果出现错误,是否有办法让DexGuard退出并显示错误条件?

DexGuard设置为在custom_rules.xml中的版本上运行。

目前有一个问题,当DexGuard试图转换方法:

[dexguard] Unexpected error while converting: 
    [dexguard] Class  = [o/?] 
    [dexguard] Method  = [?(Ljava/lang/String;)Lo/?;] 
    [dexguard] Exception = [java.lang.IllegalStateException] (Variable v17 too large for instruction [neg-int v17, v17]) 
    [dexguard] java.lang.IllegalStateException: Variable v17 too large for instruction [neg-int v17, v17] 
    ... 
    Stack trace 
    ... 
    [dexguard] Not converting this method 

我的问题是,有没有办法让DexGuard与错误状态退出,这样Ant或者詹金斯可以标记构建失败?

目前它只是打印堆栈跟踪并继续。

我目前使用Jenkins的Text-finder插件作为后期构建步骤来匹配DexGuard异常。如果发现它降级构建失败。

回答

1

DexGuard目前忽略了它无法从Java字节码转换为Dalvik字节码的方法,出于任何原因 - 特别是输入代码损坏。在这种情况下,它看起来更像DexGuard本身的错误。我们会尽快修复它,我们会考虑添加一个标志以停止出现错误状态。

(我是ProGuard和DexGuard的主要开发人员)

相关问题