如何将Java9添加到Android Studio?
我正在使用Robolectric库,它的最新版本v4.3.1要求运行Java9。我试图将JRE指向编辑配置,但在下拉列表中找不到Java 9,即使我已经安装了它。如果有人能解释一下,那将非常有帮助 请检查是否安装了Java9如何将Java9添加到Android Studio?,java,android,android-studio,robolectric,robolectric-gradle-plugin,Java,Android,Android Studio,Robolectric,Robolectric Gradle Plugin,我正在使用Robolectric库,它的最新版本v4.3.1要求运行Java9。我试图将JRE指向编辑配置,但在下拉列表中找不到Java 9,即使我已经安装了它。如果有人能解释一下,那将非常有帮助 请检查是否安装了Java9 您不能使用Java9,Android只支持直到Java8 您应该使用Android Studio附带的JDK版本,不需要单独使用JDK。当前的JDK版本是基于OpenJDK 8的,我不保证它能正常工作,但您可以通过项目结构选项将JDK设置为任何版本 文件>项目结构>SDK
您不能使用
Java9
,Android只支持直到Java8
您应该使用Android Studio附带的JDK版本,不需要单独使用JDK。当前的JDK版本是基于
OpenJDK 8
的,我不保证它能正常工作,但您可以通过项目结构选项将JDK设置为任何版本
文件>项目结构>SDK位置>“在此处更改JDK位置”
很抱歉,它也不起作用。我尝试过选择JDK9,但我得到了这样的提示,到目前为止Android不支持Java 9。根据,Android支持所有Java7功能和Java8的一部分功能 在为Android开发应用程序时,使用Java 8语言功能是非常重要的 可选。您可以保持项目的源和目标兼容性 值设置为Java7,但仍然需要使用JDK8进行编译
在Android Studio中运行Robolectric测试的唯一解决方法是更改测试任务的JRE 选择IDE菜单运行->编辑配置,然后将选项从图片更改为JDK9的位置: 测试可以在以前的版本上运行,作为临时解决办法 目前(2020年4月27日),您将无法针对SDK 29运行Robolectric,但这可能会在将来更新。目前,正如前面的所有答案所指出的,Android Studio不支持Java9或更高版本 但是如果您在这里让您的Robolectic测试运行您可以通过为您的类设置Robolectric
@Config
注释来避免SDK 29。Robolectric只需针对应用程序的所有受支持SDK版本(29除外)运行测试
实施
设置要运行的maxSdk
和minSdk
版本。这可以基于应用程序的最小和最大SDK版本,也可以设置为以下一个版本,以加快测试速度
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及以下所有 android不支持android 9,但你可以使用旧版本的Robolectric看看这个是的,android本身还不支持JDK9,但studio可以,因为它是在IntelliJ IDE上构建的,我在android中使用java 9(Instant.now())时间戳的精度不能达到微秒吗?请检查此线程-此答案不正确。您可能无法在Android应用程序中使用Java 9代码,但Robolectric不会请求Java 9,除非可以使用Java 9 SDK进行编译。尤金的解决方案是正确的。从最新的Robolectric 4.3.1开始,您可能仍然会因为此问题而遇到错误: