Proguard 5.2.1评估指令

时间:2016-05-02 06:57:48

标签: java nullpointerexception proguard obfuscation

我在jar上运行proguard时遇到了奇怪的错误,它可以与JDK 7一起使用,但最近我们升级到JDK 8并且在优化期间失败了。

我们尝试使用最新版本的Proguard甚至测试版(5.3),但我们遇到了同样的错误。

Optimizing...
Unexpected error while evaluating instruction:
  Class       = [com/abc/server/LinkedItem]
  Method      = [createEntityLogForLinkedItems(Ljava/sql/Connection;Ljava/lang/String;Lcom/blient/util/ResourceBundle;Ljava/lang/String;Ljava/util/List;ZILjava/lang/String;Z)Ljava/lang/String;]
  Instruction = [2050] aload v17
  Exception   = [java.lang.NullPointerException] (null)
Unexpected error while performing partial evaluation:
  Class       = [com/abc/server/LinkedItem]
  Method      = [createEntityLogForLinkedItems(Ljava/sql/Connection;Ljava/lang/String;Lcom/blient/util/ResourceBundle;Ljava/lang/String;Ljava/util/List;ZILjava/lang/String;Z)Ljava/lang/String;]
  Exception   = [java.lang.NullPointerException] (null)
java.lang.NullPointerException
        at proguard.evaluation.Variables.aload(Variables.java:263)
        at proguard.evaluation.Processor.visitVariableInstruction(Processor.java:694)
        at proguard.classfile.instruction.VariableInstruction.accept(VariableInstruction.java:306)
        at proguard.optimize.evaluation.PartialEvaluator.evaluateSingleInstructionBlock(PartialEvaluator.java:761)
        at proguard.optimize.evaluation.PartialEvaluator.evaluateInstructionBlock(PartialEvaluator.java:609)
        at proguard.optimize.evaluation.PartialEvaluator.evaluateInstructionBlockAndExceptionHandlers(PartialEvaluator.java:567)
        at proguard.optimize.evaluation.PartialEvaluator.visitCodeAttribute0(PartialEvaluator.java:271)
        at proguard.optimize.evaluation.PartialEvaluator.visitCodeAttribute(PartialEvaluator.java:188)
        at proguard.optimize.evaluation.SimpleEnumUseChecker.visitCodeAttribute(SimpleEnumUseChecker.java:115)
        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:92)
        at proguard.classfile.ProgramMethod.accept(ProgramMethod.java:71)
        at proguard.classfile.ProgramClass.methodsAccept(ProgramClass.java:516)
        at proguard.optimize.evaluation.SimpleEnumUseChecker.visitProgramClass(SimpleEnumUseChecker.java:102)
        at proguard.classfile.ProgramClass.accept(ProgramClass.java:358)
        at proguard.classfile.ClassPool.classesAccept(ClassPool.java:124)
        at proguard.optimize.Optimizer.execute(Optimizer.java:389)
        at proguard.ProGuard.optimize(ProGuard.java:328)
        at proguard.ProGuard.execute(ProGuard.java:127)
        at proguard.ProGuard.main(ProGuard.java:538)

0 个答案:

没有答案