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。如果我註釋掉那個try catch塊,那麼它會在應用程序中的其他地方顯示另一個IOException嘗試catch塊的錯誤。如果我評論一個,那麼它就成功了。
所以在這兩個地方proguard似乎崩潰了IOException嘗試catch塊。這些代碼塊在以前的代碼中已經在沒有任何麻煩的情況下通過了proguard。
此外,還有其他IOException catch塊不會給出任何錯誤。
我試着用proguard 4.5,4.6和4.7來測試,但都失敗了。
任何想法?
謝謝
首先,感謝這麼多的ProGuard,它是真正真棒和易於使用。我繼續前進並提交了一個錯誤。爲了使這個堆棧溢出完成後,這裏是鏈接https://sourceforge.net/tracker/?func=detail&aid=3487940&group_id=54750&atid=474704再次感謝。 – cottonBallPaws 2012-02-15 18:45:00
它仍然發生在ProGuard 5.2.1版本中:-( – 2016-07-02 15:52:15
5.3.3也有,這裏的解決方案是什麼? – batmaci 2017-11-06 23:12:49