如何修复AndroidStudio中的“模块java.base不会“打开java.io”到未命名模块的“错误”?

背景

  1. 我在 android studio 开始了我的第一个项目,以熟悉 Android 编程。
  2. 我正在关注本教程,其中
  • 我创建了一个新项目 Empty Activity,没有任何更改
  • 它应该模拟一个显示“Hello World”消息的简单应用程序

问题描述
但是每次我尝试运行和构建(我现在想要模拟器)时,我都会收到以下错误消息。

Unable to make field private final java.lang.String java.io.File.path accessible:
Unable to make field private final java.lang.String java.io.File.path
accessible: module java.base does not "opens java.io" to unnamed module @42760a00

这是我的配置设置

  1. Android Gradle 插件版本:4.2.1
  2. Gradle 版本:7.0.1(更改为解决我在同步 Gradle 时遇到的另一个问题(“Gradle 同步失败:不支持的类文件主要版本 60”)和基于此论坛上的讨论,如下所述)

Andrey Dernov 评论 2021 年 4 月 14 日 00:18 请使用 Gradle 7.0 或低于 16 版本的 JDK 来导入和构建项目(设置(macOS 上的首选项)| 构建、执行、部署 | 构建工具 | Gradle | Gradle JVM 选项)。

  1. JDK:16.0.1

有什么建议或想法吗?

回答

我发现这个讨论与我的问题有关。但无法弄清楚如何在 Android Studio 中传递 JVM 参数。

但是,用 JDK 15 替换 JDK 16 后错误消失了。

  • I also fix the issue by replacing jdk 16 to 1.8.

回答

我想我找到了解决方案。

如果您正在导入旧项目,您可能会遇到此错误。

基本上,您使用较低的 JDK 版本制作了旧项目,现在您的系统中当前安装了较高的 JDK 版本。

您应该避免使用更高的 JDK 版本来构建较旧的项目。

  1. 基本上下载 JDK 8 (1.8) 并安装它。
  2. 更改环境变量(将 JDK 8 路径写入环境变量)
  3. 然后更改您的项目结构并将 JDK 8 路径写入 JDK 位置。
  1. 使缓存无效并重新启动 android studio。
  2. 构建您的项目,它应该可以工作。

如果您收到以下错误:

Error:Cannot fit requested classes in a single dex file.Try supplying a main-dex list. # methods: 72477 > 65536

然后在 app.gradle 文件中添加以下依赖项:

 // multidex
implementation 'com.android.support:multidex:1.0.3'

那么你需要在你的 app.gradle 文件中启用 multidex。

android {
compileSdkVersion 30

defaultConfig {
    applicationId "com.convenient.easymeasure"
    minSdkVersion 19
    targetSdkVersion 30
    versionCode 1
    versionName "1.0"
    multiDexEnabled true

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}


以上是如何修复AndroidStudio中的“模块java.base不会“打开java.io”到未命名模块的“错误”?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>