我有一个用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是有帮助的(并非总是但主要是),但是显然,在每次更改代码后此步骤都是必需的,这会非常烦人。
根本问题是什么,如何避免和/或解决这个问题?
答案 0 :(得分:0)
结果是,尽管Java编译器仍然允许在一个文件中声明多个接口,但人们对此并不满意,但Kotlin编译器目前不允许。 将Interface文件拆分为每个文件,每个文件都具有一个(1行)接口,并带有各自的类型名,就像文件名一样。