mockito - java.lang.VerifyError:分支目标处的堆栈映射帧不一致

时间:2015-05-04 10:19:18

标签: java junit mockito

java.lang.VerifyError: Inconsistent stackmap frames at branch target 775
Exception Details:
Location:
    com/../..../class.method()
Reason:
    Type 'java/sql/Connection' (current frame, locals[6]) is not assignable to 'java/lang/Class' (stack map, locals[6])

这是我尝试执行junit时得到的结果。

junit 4.8.1 org.mockito 1.8.5 org.powermock 1.3.9 javassist 3.12.0-GA

6 个答案:

答案 0 :(得分:2)

您使用的是哪个JDK版本?

我有一个类似的问题,并通过将-noverify添加到JVM参数来解决它。

答案 1 :(得分:1)

如果你使用jdk8 +,你可能需要更新javassist,javassist 3.20-不支持jdk8 +。

<dependency>
    <groupId>org.javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.20.0-GA</version>
    <scope>test</scope>
</dependency>

答案 2 :(得分:0)

I was facing the same issue.As i was using Proguard at my end.So i added

**-dontpreverify**

in proguard.txt file. Beause this issue is related to Java 7

You can check here:- [enter link description here][1] 

  [1]: http://proguard.sourceforge.net/manual/usage.html

以上情况是您使用proguard。

答案 3 :(得分:0)

我在使用JDK 1.7.0_79时遇到了类似的问题,我可以通过在VM参数中添加以下参数来解决它。 -noverify

答案 4 :(得分:0)

以下选项对我有用。我的Java版本是1.8.0_181

    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-easymock</artifactId>
        <version>${powermock.version}</version>
        <scope>test</scope>
        <exclusions>
                <exclusion>
                    <groupId>org.javassist</groupId>
                        <artifactId>javassist</artifactId>
                </exclusion>
            </exclusions>
    </dependency>

    <dependency>
        <groupId>org.javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>3.21.0-GA</version>
        <scope>test</scope>
    </dependency>

答案 5 :(得分:0)

通过将模拟版本从2.5.0升级到2.24.5 FWIW,修复了创建模拟时的类似问题“ java.lang.VerifyError”(未提及堆栈图)。