ページ

2014/05/11

Android Gradle PluginでJaCoCoを有効にしてテストするとjava.lang.VerifyError発生 (2)

|

Android Gradle PluginでJaCoCoを使ったカバレッジ計測を試したが
java.lang.VerifyErrorが発生したというエントリを書いた。

どうやらこの影響が及ぶのはリフレクションだけではないらしく、
通常のIntentによる起動が失敗した。
以下のようなパターンで、testCoverageEnabled = trueとなった
ビルドでインストールしたアプリがjava.lang.VerifyErrorによりクラッシュした。

まずAndroidManifest.xml。
途中は省略するが、トップ画面からメニューを開き
「About」の項目をタップするとAboutActivityが開き
アプリの概要が表示される、というもの。

<application
:
        <activity
                android:name=".AboutActivity"
                android:label="@string/title_activity_about" />
</application>

トップ画面のMainActivityでは以下のように書いている。

    @Override
    public boolean onOptionsItemSelected(final MenuItem menu) {
        int id = menu.getItemId();
        if (id == R.id.menu_about) {
            startActivity(new Intent(getApplicationContext(),
                AboutActivity.class));
            return true;
        }
        return false;
    }

これが、通常のビルドなら問題なかったが上記の通り
カバレッジ計測を有効にしたら失敗した。
(自動テストでなく手動で動かしても同様)

実際のプロジェクトで利用するにはまだ問題がありそうだ。。。

0 件のコメント: