java.lang.VerifyError

Expecting a stackmap frame at branch target 47 Exception Details: Location: 以下省略 ``` Robolectricがclassファイルのバイトコードをいじっているらしいのですが、それがJavaVM実行時のclassファイルの妥当性チェックにひっかかっているとのことです。 また「Edit Configurations...」からVM Optionsに次の妥当性チェックを無視するオプションを追加してください。 JDK1.7の場合 ``` -XX:-UseSplitVerifier ``` JDK1.8の場合 ``` -noverify ``` ## テストコードの実行結果 これでようやくテストコードが実行できるはずです。 わざと間違えたテストで失敗が通知されます。 上記のテストコードだとこんな感じになります。 ``` ondition not satisfied: result == "Good Night" | | null false <Click to see difference>

Solutions on the web3098

  • via qiita.com by Unknown author, 6 months ago
    Expecting a stackmap frame at branch target 47 Exception Details: Location: ``` RobolectricclassファイルバイトコードJavaVMclassファイルチェックEdit Configurations...」VM Optionsチェックオプション
  • # **Expecting a stackmap frame at branch target 19** Exception Details: Location:
  • Expecting a stackmap frame at branch target 22 Exception Details: Location: hoge.HogeClass.<init>()V @18: ifnull Reason: Expected stackmap frame at this location.
  • Stack trace

    • java.lang.VerifyError: Expecting a stackmap frame at branch target 47 Exception Details: Location: 以下省略 ``` Robolectricがclassファイルのバイトコードをいじっているらしいのですが、それがJavaVM実行時のclassファイルの妥当性チェックにひっかかっているとのことです。 また「Edit Configurations...」からVM Optionsに次の妥当性チェックを無視するオプションを追加してください。 JDK1.7の場合 ``` -XX:-UseSplitVerifier ``` JDK1.8の場合 ``` -noverify ``` ## テストコードの実行結果 これでようやくテストコードが実行できるはずです。 わざと間違えたテストで失敗が通知されます。 上記のテストコードだとこんな感じになります。 ``` ondition not satisfied: result == "Good Night" | | null false <Click to see difference> at com.example.hoge.fugapplication.MainActivityTest.getGreeting_夜の挨拶(MainActivityTest.groovy:41)

    Write tip

    You have a different solution? A short tip here would help you and many other users who saw this issue last week.

    Users with the same issue

    You are the first who have seen this exception. Write a tip to help other users and build your expert profile.