Help us understand the problem. What is going on with this article?

robolectric3.0で Android SDK23 を動かす方法

More than 5 years have passed since last update.

最新のrobolectricでは、compileSdkVersion 23を指定すると二つの問題が発生します。

  • Gradle: エラー: AndroidHttpClientにアクセスできません が出る
  • Robolectric does not support API level 23 が出る

解決方法

一つ目の原因は、API Level 23から AndroidHttpClientが削除されたからです。
なので、以下のように記述すれば解決します。

build.gradle
android {
    useLibrary 'org.apache.http.legacy'

Http関連の処理を記述していなくてもこのエラーは出るので必須です。

これは、githubのissueに上がっているので、次のバージョンでは解決されるでしょう。
https://github.com/robolectric/robolectric/issues/1862

二つ目のエラーはsdk = Build.VERSION_CODES.LOLLIPOP)を指定すれば、解決です。
こんな感じです。

MainActivityTest.java
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, sdk = Build.VERSION_CODES.LOLLIPOP)
public class MainActivityTest {

robolectricは、SDK21以下でないと対応していないようです。

これもissueにあるので次のバージョンでは解決されるでしょう。
https://github.com/robolectric/robolectric/issues/1865

ko2ic
最近はflutterです。
uzabase
企業活動の意思決定を支える情報インフラの提供
https://www.uzabase.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away