2020年6月2日火曜日

androidx.test.ext:truth を使ったときに IllegalAccessError が出たらバージョンを 1.3.0 以降にする

androidx.test.ext.truth にある IntentSubject などを使うとき com.google.truth:truth:0.42 androidx.test.ext:truth:1.2.0 だと動くのですが、Truth のバージョンを以下のように 1.0.1 にすると com.google.truth:truth:1.0.1 androidx.test.ext:truth:1.2.0 java.lang.IllegalAccessError: tried to access method com.google.common.truth.Subject.actual()Ljava/lang/Object; from class androidx.test.ext.truth.content.IntentSubject

というエラーが出ます。

IntentSubject 内で Subject の actual() メソッドにアクセスしているのですが、これが 0.42 のときは protected だったのが package private に変わってアクセスできなくなったのが原因です。

そのため、この新しい Truth に対応した androidx.test.ext:truth のバージョンを使えば OK です。 com.google.truth:truth:1.0.1 androidx.test.ext:truth:1.3.0-rc01



1 件のコメント: