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;
}
これが、通常のビルドなら問題なかったが上記の通りカバレッジ計測を有効にしたら失敗した。
(自動テストでなく手動で動かしても同様)
実際のプロジェクトで利用するにはまだ問題がありそうだ。。。