現在、Jenkins サーバーで ANT を使用して Android アプリケーションを構築しています。
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
私の質問は、ANT または Jenkins がビルドを失敗としてマークできるように、DexGuard をエラー ステータスで終了させる方法はありますか?
現時点では、単にスタック トレースを出力して続行します。
現在、Jenkins の Text-finder プラグインをビルド後のステップとして使用して、DexGuard 例外に一致させています。見つかった場合、ビルドを失敗にダウングレードします。