Android Studio 中的普通 Java 库在编辑器中出现编译错误:无法访问 'java.io.Serializable' 这是
2022-09-04 23:41:18
我开始在kotlin中使用干净的架构和一个域层来做一个Android项目,域层是一个普通的java库(没有Android依赖项)。
这是领域模块相关的等级会议:
plugins {
id("java-library")
id("kotlin")
id("kotlin-kapt")
}
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
dependencies {
api(kotlin("stdlib-jdk8"))
// ....
}
如果我从命令行或在Android工作室中运行构建,它会成功完成!
但是Android Studio在编辑器中只为这个模块提供了很多奇怪的错误:
Cannot access 'java.io.Serializable' which is a supertype of 'kotlin.Double'. Check your module classpath for missing or conflicting dependencies
Cannot access 'java.io.Serializable' which is a supertype of 'kotlin.String'. Check your module classpath for missing or conflicting dependencies
Cannot access 'java.io.Serializable' which is a supertype of 'java.util.Locale'. Check your module classpath for missing or conflicting dependencies
Cannot access 'java.io.Serializable' which is a supertype of 'java.math.BigDecimal'. Check your module classpath for missing or conflicting dependencies
Cannot access 'java.io.Serializable' which is a supertype of 'java.time.OffsetDateTime'. Check your module classpath for missing or conflicting dependencies
你明白了。它们在编辑器中都是红色的。但是,如果我执行编译:没有错误,并且项目按预期工作。
我想强调一下:
--> 这只是编辑器中的一个问题但令人讨厌<——
因为它隐藏了我可能需要看到的真实错误。
项目中的其他 Dev 没有这样的问题。
我正在运行上一个Android Studio Beta版:
Android Studio Arctic Fox | 2020.3.1 Beta 3
Build #AI-203.7717.56.2031.7395685, built on May 25, 2021
Runtime version: 11.0.10+0-b96-7249189 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Linux 5.8.0-53-generic
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 8
Registry: external.system.auto.import.disabled=true
Non-Bundled Plugins: org.jetbrains.kotlin, com.intellij.lang.jsgraphql, org.intellij.plugins.markdown
Current Desktop: ubuntu:GNOME
正如你所看到的,我在Linux上,确切地说是Ubuntu 20.04.02 LTS。另一个Dev有一台Mac。
Android Studio将使用嵌入式JDK(版本11)。
如果我编辑我的设置,而不是使用嵌入式JDK,我切换到我的系统openjdk版本11,错误就会消失
但是,当我更改它时,我开始在撰写中遇到一些预览问题,无论如何,Google推荐嵌入式JDK。我宁愿坚持下去,引用:
最新的OpenJDK的副本与Android Studio 2.2及更高版本捆绑在一起,这是我们推荐您在Android项目中使用的JDK版本。
任何人都可以提供任何见解或帮助摆脱上述错误吗?