Proguard: IllegalArgumentException: Las pilas tienen diferentes tamaños de corriente

Proguard se bloquea con "Proguard devuelto con el código de error 1", y este bloqueo en la consola:

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) 

Lo he reducido a un bloque try catch para una IOException. Si comento que try catch bloquea, entonces muestra este error para otro bloque de captura de IOException try en otro lugar de la aplicación. Si comento que uno fuera, entonces se basa con éxito.

Así que en ambos lugares, proguard parece estar fallando en un bloque de captura de IOException try. Estos bloques han estado en el código en las compilaciones anteriores que pasaron por proguard sin ningún problema antes.

Además, hay otros bloques de captura de IOException que no dan ningún error.

Lo intenté con proguard 4.5, 4.6 y 4.7 y todos fallaron.

¿Algunas ideas?

Gracias

Esto parece ser un error en ProGuard. Puede registrarlo en el rastreador de errores de ProGuard , preferiblemente con un pequeño caso de prueba que me permite reproducir el problema, o puede enviarlo por correo electrónico (Eric, desarrollador de ProGuard).

Por el momento, puede solucionar el problema desactivando la optimización (con la opción -dontoptimize ).

  • Error en la interfaz de Android Proguard Javascript
  • La ejecución falló para la tarea ': app: transformClassesAndResourcesWithProguardForRelease
  • Nombre de clase obfuscated personalizado en proguard
  • Proguard y Netty 5 en Android
  • Facturación en aplicaciones Android y Proguard (fuente desconocida)
  • Nota: com.google.common.cache.Striped64 accede dinámicamente a un campo declarado 'base'
  • ¿Cómo mantener los nombres de métodos de clase que anulan \ implementa otro método de ser ofuscado?
  • Proguard Error al intentar exportar a través de android studio
  • Usando "dontwarn" en proguard
  • ¿Tiene Android SDK intencionalmente utilizar una versión antigua de ProGuard
  • Uso de Proguard para eliminar clases no utilizadas en la biblioteca de Servicios de Google Play
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.