Robolectric 4.3.1失败,并显示消息:Android 29需要Java 9(具有Java 1)

问题描述 投票:3回答:1

我正在尝试通过robolectric运行我的android测试,但它收到以下错误消息:

at.guger.moneybook.data.repository.AccountsRepositoryTest STANDARD_ERROR
    [Robolectric] WARN: Android SDK 16 requires Java 8 (have Java 1). Tests won't be run on SDK 16 unless explicitly requested.
    [Robolectric] WARN: Android SDK 17 requires Java 8 (have Java 1). Tests won't be run on SDK 17 unless explicitly requested.
    [Robolectric] WARN: Android SDK 18 requires Java 8 (have Java 1). Tests won't be run on SDK 18 unless explicitly requested.
    [Robolectric] WARN: Android SDK 19 requires Java 8 (have Java 1). Tests won't be run on SDK 19 unless explicitly requested.
    [Robolectric] WARN: Android SDK 21 requires Java 8 (have Java 1). Tests won't be run on SDK 21 unless explicitly requested.
    [Robolectric] WARN: Android SDK 22 requires Java 8 (have Java 1). Tests won't be run on SDK 22 unless explicitly requested.
    [Robolectric] WARN: Android SDK 23 requires Java 8 (have Java 1). Tests won't be run on SDK 23 unless explicitly requested.
    [Robolectric] WARN: Android SDK 24 requires Java 8 (have Java 1). Tests won't be run on SDK 24 unless explicitly requested.
    [Robolectric] WARN: Android SDK 25 requires Java 8 (have Java 1). Tests won't be run on SDK 25 unless explicitly requested.
    [Robolectric] WARN: Android SDK 26 requires Java 8 (have Java 1). Tests won't be run on SDK 26 unless explicitly requested.
    [Robolectric] WARN: Android SDK 27 requires Java 8 (have Java 1). Tests won't be run on SDK 27 unless explicitly requested.
    [Robolectric] WARN: Android SDK 28 requires Java 8 (have Java 1). Tests won't be run on SDK 28 unless explicitly requested.
    [Robolectric] WARN: Android SDK 29 requires Java 9 (have Java 1). Tests won't be run on SDK 29 unless explicitly requested.

at.guger.moneybook.data.repository.AccountsRepositoryTest > testUpdateAccount FAILED
    java.lang.UnsupportedOperationException: Failed to create a Robolectric sandbox: Android SDK 29 requires Java 9 (have Java 1)
...

我安装的JDK版本是13。

我已将android.enableUnitTestBinaryResources=true添加到gradle.properties中,并在build.gradle中配置了testOptions.unitTests.includeAndroidResources = true

我的测试跑步者是Robolectric 4.x文档中指定的AndroidJUnit4::class

android unit-testing kotlin robolectric
1个回答
0
投票
Robolectric当前仅识别带有正确格式(X.XX.XX)的版本字符串的JDK:https://github.com/robolectric/robolectric/issues/5303#issuecomment-547029317

此外,仅从Gradle 6.0起,才支持使用JDK 13进行构建。

© www.soinside.com 2019 - 2024. All rights reserved.