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)
я сузили его до попытки поймать блок для исключение IOException. Если я прокомментирую, что try catch block, то он показывает эту ошибку для другого IOException try catch block в другом месте приложения. Если я прокомментирую этот вариант, он будет успешно создан.
Таким образом, в обоих случаях proguard, кажется, разбивается на блок захвата IOException. Эти блоки были в коде в предыдущих сборках, которые прошли через proguard без каких-либо проблем раньше.
Кроме того, существуют другие блоки catch IOException, которые не дают никаких ошибок.
Я пробовал это с помощью proguard 4.5, 4.6 и 4.7, и все провалилось.
Любые идеи?
Благодаря
прежде всего, спасибо за ProGuard, это действительно удивительный и простой в использовании. Я пошел вперед и подал ошибку. Чтобы сделать это заполнение переполнения стека завершенным, вот ссылка https://sourceforge.net/tracker/?func=detail&aid=3487940&group_id=54750&atid=474704 Еще раз спасибо. – cottonBallPaws
все еще происходит с версией ProGuard 5.2.1 :-( –
5.3.3 также. Какое решение здесь? – batmaci