我正在使用Robolectric库,它的最新版本v4.3.1需要Java 9才能运行。我试图将JRE指向编辑配置,但我在下拉列表中找不到Java 9,即使我已经安装了它。如果有人能解释一下,这将非常有帮助!
请检查是否已安装Java 9。
mlmc2os51#
在Android Studio中运行Robolectric测试的唯一解决方案是更改测试任务的JRE。选择IDE菜单Run -〉Edit Configuration,然后将选项从图片更改为JDK 9的位置:
1mrurvl12#
您目前无法在SDK 29上运行Robolectric(2020年4月27日),但将来可能会更新。目前,正如我前面的所有答案所指出的,Android Studio中不支持Java 9或更高版本。但是,如果您在这里运行Robolectic测试,您可以通过为类设置Robolectric @Config注解来避免SDK 29。Robolectric将针对应用的所有受支持SDK版本(29除外)运行您的测试。
@Config
设置要在其上运行的maxSdk和minSdk版本。这可以基于应用的最低和最高SDK版本,也可以设置为如下所示的一个版本,以便加快测试速度。
maxSdk
minSdk
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和所有以下的。
e4yzc0pl3#
到目前为止,Android还不支持Java 9。根据documentation,Android支持Java 7的所有功能和Java 8的部分功能。在开发Android应用时,使用Java 8语言功能是可选的。您可以将项目的源代码和目标代码兼容性值设置为Java 7,但仍需要使用JDK 8进行编译。
bfhwhh0e4#
我不保证它会工作,但您可以将JDK设置为任何版本,从项目结构选项文件〉项目结构〉SDK位置〉'更改JDK位置在这里'
对不起,但它也不工作,我曾尝试选择JDK9,但我得到这样的提示
envsm3lx5#
你不能使用Java 9,Android只支持直到Java 8.您应该使用Android Studio自带的JDK版本,无需单独使用JDK。当前JDK版本基于OpenJDK 8。
5条答案
按热度按时间mlmc2os51#
在Android Studio中运行Robolectric测试的唯一解决方案是更改测试任务的JRE。
选择IDE菜单Run -〉Edit Configuration,然后将选项从图片更改为JDK 9的位置:
1mrurvl12#
测试可以在以前的版本上运行,作为临时解决方案
您目前无法在SDK 29上运行Robolectric(2020年4月27日),但将来可能会更新。目前,正如我前面的所有答案所指出的,Android Studio中不支持Java 9或更高版本。
但是,如果您在这里运行Robolectic测试,您可以通过为类设置Robolectric
@Config
注解来避免SDK 29。Robolectric将针对应用的所有受支持SDK版本(29除外)运行您的测试。实施
设置要在其上运行的
maxSdk
和minSdk
版本。这可以基于应用的最低和最高SDK版本,也可以设置为如下所示的一个版本,以便加快测试速度。当然,这只是另一个“丑陋”的补丁,但它会让你继续下去,直到你能够对所有想要的SDK运行测试,或至少SDK 29和所有以下的。
e4yzc0pl3#
到目前为止,Android还不支持Java 9。根据documentation,Android支持Java 7的所有功能和Java 8的部分功能。
在开发Android应用时,使用Java 8语言功能是可选的。您可以将项目的源代码和目标代码兼容性值设置为Java 7,但仍需要使用JDK 8进行编译。
bfhwhh0e4#
我不保证它会工作,但您可以将JDK设置为任何版本,从项目结构选项文件〉项目结构〉SDK位置〉'更改JDK位置在这里'
对不起,但它也不工作,我曾尝试选择JDK9,但我得到这样的提示
envsm3lx5#
你不能使用Java 9,Android只支持直到Java 8.
您应该使用Android Studio自带的JDK版本,无需单独使用JDK。当前JDK版本基于OpenJDK 8。