将 Android Studio JDK 更新到 Java 9

问题描述

我正在尝试在 Android 片段中测试 Toast 事件,据我所知,测试 Toast 事件的唯一方法是使用 robolectric,当我运行测试时,出现以下错误

[Robolectric] WARN: Android SDK 29 requires Java 9 (have Java 8). Tests won't be run on SDK 29 unless explicitly requested.
[Robolectric] WARN: Android SDK 30 requires Java 9 (have Java 8). Tests won't be run on SDK 30 unless explicitly requested.

如果我将目标 SDK 切换到 28,测试将运行并通过。我想在 SDK 29 上进行测试,我该如何更改

我已按照 android dev

中的说明进行操作

设置JDK版本 最新的 OpenJDK 副本与 Android Studio 2.2 及更高版本捆绑在一起,这是我们建议您用于 Android 项目的 JDK 版本。要使用捆绑的 JDK,请执行以下操作:

  1. 在 Android Studio 中打开您的项目,然后在菜单栏中选择文件 > 项目结构。
  2. 在 SDK 位置页面和 JDK 位置下,选中使用嵌入式 JDK 复选框。
  3. 点击确定。

Android Studio 4.1.3 版,带有 JDK 8

我已经从 oracle web site 下载了 JDK 9 并将项目结构 JDK 位置设置为 JDK-9

enter image description here

此时我运行测试时出现以下错误

ERROR: Failed to fetch maven artifact org.robolectric:android-all:10-robolectric-5803371
java.util.concurrent.ExecutionException: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

这对我来说很奇怪,如果我将 JDK 保留为 8 并在 SDK 28 上运行测试它会通过,我不确定在配置 Android Studio 以在 JDK 9 上运行时是否遗漏了什么。

>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)