我有一个用 Java 编写的 Android 应用程序,现在正在第一次尝试 Kotlin。我使用 Kotlin 创建了一个新 Activity ,应该通过“startActivityforResult”从 Java 代码中调用它。 IDE(可能是 Kotlin 插件?)自动将所有必要的内容添加到 gradle 构建文件中。新 Activity 使用来自主 Activity 的键来识别和枚举参数和返回值。不,当我尝试使用 Android Gradle 插件 v3.3.1 和 Kotlin 1.3.20 在 Android Studio 3.3.1 中构建此应用程序时。
通常这会导致错误:无法解析以下类的父类(super class)型。请确保您在类路径中具有所需的依赖项...
列出的类是我自己的 2 个类(所以依赖关系没有问题),两种情况下的父类(super class)型是相同的,即 Java 接口(interface)
interface AllDataLoadedListener {
void allDataLoaded();
}
与其他接口(interface)定义一起位于名为 DatabaseInterfaces.java 的文件中。
使缓存失效并按照建议重新启动 Android Studio here有帮助(并非总是但大多数情况下),但是在每次代码更改之后这一步显然是必要的,这会很快变得烦人。
根本问题是什么?如何避免和/或解决这个问题?
最佳答案
事实证明,虽然 Java 编译器仍然允许在一个文件中声明多个接口(interface)是不受欢迎的,但 Kotlin 编译器目前不允许。
将接口(interface)文件拆分成文件,每个文件都有一个(1 行)接口(interface),它们各自的类型名称也作为文件名来解决问题。
关于java - 如何避免由于 Kotlin 构建错误 : Supertypes of the following classes cannot be resolved 而重新启动 Android Studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54745395/