如何将Java 9添加到Android Studio?测试可以在以前的版本上运行,作为临时解决方法

我正在使用Robolectric库,它的最新版本v4.3.1需要Java 9才能运行。我试图将JRE指向编辑配置,但即使我已经安装了Java 9,我也在下拉列表中找不到它。如果有人能解释一下,那将是非常有帮助的!

enter image description here

请检查已安装的 Java 9。

enter image description here


答案 1

在 Android Studio 中运行 Robolectric 测试的唯一解决方法是更改测试任务的 JRE。

选择 IDE 菜单“运行 ->编辑配置”,然后将图片中的选项更改为 JDK9 的位置:

screenshot


答案 2

测试可以在以前的版本上运行,作为临时解决方法

您目前(2020 年 4 月 27 日)将无法针对 SDK 29 运行 Robolectric,但将来可能会更新。目前,正如我之前的所有答案所指出的那样,Android Studio中不支持Java 9或更高版本。

但是,如果您在这里运行Robolectic测试,则可以通过为类设置Robolectric注释来简单地避免SDK 29。Robolectric 将仅针对应用的所有受支持的 SDK 版本(29 个版本除外)运行测试。@Config

实现

设置要在其上运行的 和 版本。这可以基于应用的最小和最大 SDK 版本,也可以设置为如下所示的一个版本,以便更快地进行测试。maxSdkminSdk

import androidx.test.ext.junit.runners.AndroidJUnit4
import org.robolectric.annotation.Config
import org.junit.runner.RunWith
import android.os.Build

@RunWith(AndroidJUnit4::class)
@Config(maxSdk = Build.VERSION_CODES.P, minSdk = Build.VERSION_CODES.P) // Value of Build.VERSION_CODES.P is 28
class TestClass {
...
}

当然,它只是另一个“丑陋”的补丁,但它会让你继续前进,直到你能够针对所有想要的SDK运行测试,或者至少是SDK 29和所有以下。


推荐