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.
- Agregar ruta de archivo jar agregada en proyecto de biblioteca en PROGUARD
- Obfuscate Android proyecto de prueba, así como el proyecto (prueba en ejecución en la versión ofuscada y la versión)
- Proguard - también utiliza archivos proguard de los módulos
- Kotlin, Proguard y lambdas
- Android Proguard Release causa no ejecutar for-loop
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
- Configuración de Android studio 1.1.0 minifyEnabled true causando problemas con la aplicación
- Exportación de un proyecto de Android durante el uso de proguard en adt & sdk 20
- DexIndexOverflowException sólo al ejecutar pruebas
- Field.getGenericType () devuelve la instancia de java.lang.Class en lugar de Type
- Proguard con la colección parametrizada orrmlite
- Cómo mantener a mi clase de ofuscar por proguard
- Problemas con ProGuard para Android con Parse 1.3.5 jar
- Proguard eliminando anotaciones en la aplicación de Android
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
).