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