2020年6月2日火曜日

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

androidx.test.ext.truth にある IntentSubject などを使うとき
  1. com.google.truth:truth:0.42  
  2. androidx.test.ext:truth:1.2.0  
だと動くのですが、Truth のバージョンを以下のように 1.0.1 にすると
  1. com.google.truth:truth:1.0.1  
  2. 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 です。
  1. com.google.truth:truth:1.0.1  
  2. androidx.test.ext:truth:1.3.0-rc01  




0 件のコメント:

コメントを投稿