如何避免由于Kotlin构建错误而重启Android Studio:无法解析以下类的超类型

时间:2019-02-18 10:41:26

标签: java android gradle kotlin interface

我有一个用Java编写的Android应用,现在第一次尝试Kotlin。我使用Kotlin创建了一个新活动,应该通过“ startActivityforResult”从Java代码中调用该活动。 IDE(可能是Kotlin插件?)会自动将所有必需的内容添加到gradle构建文件中。新活动使用主活动中的键来识别和枚举参数以及返回值。当我尝试使用Android Gradle插件v3.3.1和Kotlin 1.3.20在Android Studio 3.3.1中构建此应用时,不会。

通常会导致错误:无法解析以下类的超类型。请确保您在类路径中具有必需的依赖项...

列出的类有我自己的2个类(因此,依赖关系不是问题),两种情况下的超类型都相同,即Java接口

interface AllDataLoadedListener {
    void allDataLoaded();
}

与其他接口定义一起位于名为DatabaseInterfaces.java的文件中。

按照建议的here来使缓存无效并重新启动Android Studio是有帮助的(并非总是但主要是),但是显然,在每次更改代码后此步骤都是必需的,这会非常烦人。

根本问题是什么,如何避免和/或解决这个问题?

1 个答案:

答案 0 :(得分:0)

结果是,尽管Java编译器仍然允许在一个文件中声明多个接口,但人们对此并不满意,但Kotlin编译器目前不允许。 将Interface文件拆分为每个文件,每个文件都具有一个(1行)接口,并带有各自的类型名,就像文件名一样。