2012-02-14 2 views
5

ProGuardのは「ProGuardのエラーコード1で返された」とクラッシュしている別の現在の大きさを持っていると、コンソールでこのクラッシュは:ProGuardの:はIllegalArgumentException:スタックは、

java.lang.IllegalArgumentException: Stacks have different current sizes [0] and [1] 
at proguard.evaluation.Stack.generalize(Stack.java:125) 
at proguard.evaluation.TracedStack.generalize(TracedStack.java:140) 
at proguard.optimize.evaluation.PartialEvaluator.evaluateSingleInstructionBlock(PartialEvaluator.java:683) 
at proguard.optimize.evaluation.PartialEvaluator.evaluateInstructionBlock(PartialEvaluator.java:587) 
at proguard.optimize.evaluation.PartialEvaluator.visitExceptionInfo(PartialEvaluator.java:1078) 
at proguard.classfile.visitor.ExceptionHandlerFilter.visitExceptionInfo(ExceptionHandlerFilter.java:67) 
at proguard.classfile.attribute.CodeAttribute.exceptionsAccept(CodeAttribute.java:186) 
at proguard.optimize.evaluation.PartialEvaluator.evaluateExceptionHandlers(PartialEvaluator.java:1018) 
at proguard.optimize.evaluation.PartialEvaluator.evaluateInstructionBlockAndExceptionHandlers(PartialEvaluator.java:567) 
at proguard.optimize.evaluation.PartialEvaluator.visitCodeAttribute0(PartialEvaluator.java:264) 
at proguard.optimize.evaluation.PartialEvaluator.visitCodeAttribute(PartialEvaluator.java:181) 
at proguard.optimize.evaluation.LivenessAnalyzer.visitCodeAttribute(LivenessAnalyzer.java:205) 
at proguard.optimize.evaluation.VariableOptimizer.visitCodeAttribute(VariableOptimizer.java:105) 
at proguard.classfile.attribute.CodeAttribute.accept(CodeAttribute.java:101) 
at proguard.classfile.ProgramMethod.attributesAccept(ProgramMethod.java:79) 
at proguard.classfile.attribute.visitor.AllAttributeVisitor.visitProgramMember(AllAttributeVisitor.java:95) 
at proguard.classfile.util.SimplifiedVisitor.visitProgramMethod(SimplifiedVisitor.java:91) 
at proguard.classfile.ProgramMethod.accept(ProgramMethod.java:71) 
at proguard.classfile.ProgramClass.methodsAccept(ProgramClass.java:504) 
at proguard.classfile.visitor.AllMethodVisitor.visitProgramClass(AllMethodVisitor.java:47) 
at proguard.classfile.ProgramClass.accept(ProgramClass.java:346) 
at proguard.classfile.ClassPool.classesAccept(ClassPool.java:116) 
at proguard.optimize.Optimizer.execute(Optimizer.java:833) 
at proguard.ProGuard.optimize(ProGuard.java:306) 
at proguard.ProGuard.execute(ProGuard.java:115) 
at proguard.ProGuard.main(ProGuard.java:492) 

私はのためのtry catchブロックにそれを絞られていますIOException私がコメントをキャッチブロックしようとすると、別のIOExceptionのためにこのエラーが表示されます。私がそれをコメントすれば、それは成功する。

したがって、両方の場所でproguardがIOException try catchブロックでクラッシュしているようです。これらのブロックは以前にも問題なくproguardを通過した以前のビルドのコードに含まれていました。

また、エラーを発生させない他のIOExceptionキャッチブロックもあります。

私はproguard 4.5、4.6、4.7でこれを試しましたが、すべて失敗しました。

アイデア?

ありがとう

答えて

8

これはProGuardのバグのようです。 ProGuard's bug trackerにログすることができます。問題の再現を可能にする小さなテストケースを使用するか、mail it(Progardの開発者Eric)に問い合わせることができます。

当面は、最適化をオフにして問題を回避することができます(オプションは-dontoptimize)。

+0

オフ、ProGuardのために多くのおかげで、それは本当に素晴らしいと使いやすいです。私は先に進み、バグを提出した。このスタックオーバーフローポストを完成させるために、ここにリンクhttps://sourceforge.net/tracker/?func=detail&aid=3487940&group_id=54750&atid=474704をありがとうございます。 – cottonBallPaws

+0

それでもProGuardバージョン5.2.1で発生します:-( –

+0

5.3.3。ここでの解決策は何ですか? – batmaci

0

xamarinフォームプロジェクトのproguard 5.3.3でこのエラーが発生しました。私の問題は、自分のウェブサイトからproguardのバージョンをダウンロードすると、ダウンロードされたzipにこれらのtxtファイルが存在しないため、私はproguardフォルダにファイルがないということでした。古いproguardをバックアップし、そこからこれらのファイルをコピーする方が良いでしょう。あるいは手動で作成することもできます。最初

enter image description here

関連する問題