对于我项目中的一个 Kotlin 文件,几乎每次我对其进行更改和重建时,我都会收到每个函数的"冲突重载"消息。没有两个相互冲突的函数;每个错误消息列出完全相同的函数两次。如果我做一个干净的构建,它构建得很好。
e: ContentApi.kt: (220, 1(: 冲突重载: public fun loadExclusions(assetIds: List(:在文件 ContentApi.kt 中 com.foo.bar 定义的单位, public fun loadExclusions(assetIds: List(:在文件 ContentApi.kt 中以 com.foo.bar 定义的单位
对其他 Kotlin 文件的更改不会产生相同的问题。我可以在另一个 Kotlin 文件中创建一个函数,毫无困难地构建,然后将其剪切并粘贴到这个文件中,然后繁荣起来。
其他人见过这样的东西吗?我最好的猜测是,这是编译代码缓存的某种错误,其中新编译的代码不会替换以前的版本,因此它们相互冲突。
Android Studio/Gradle version 3.2 RC 3 Kotlin 版本 1.2.61
当您有两个名称相同但注释不同的函数时,通常会发生这种情况。
例如:
@PrePersist
public fun loadExclusions(assetIds: List){
}
@PreUpdate
public fun loadExclusions(assetIds: List){
}
我有同样的情况,问题是我已经将包从主文件夹更改为位置,就像开始时建议的调试器一样(在我更改所有位置之前(。当我把原来的包裹留在里面时还可以。
请检查包导入行。它将在以下情况下为我修复 我已经使用正确的包名称正确更新了包导入行。