【问题标题】:Getting "Conflicting overloads" for every function in one Kotlin file whenever I change it每当我更改它时,都会为一个 Kotlin 文件中的每个函数获取“冲突重载”
【发布时间】:2018-09-19 18:26:44
【问题描述】:

对于我项目中的一个 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 版本 3.2 RC 3 Kotlin 版本 1.2.61

【问题讨论】:

  • 这看起来确实是一个增量编译错误。如果升级到 Kotlin 1.2.70(最新发布的版本),问题是否仍然存在?
  • 我会试试的。它肯定是通过一些 Kotlin 版本更新而存在的,尽管我不能确切地说它是什么时候开始的。
  • 我最近遇到了这个问题,因为我从远程仓库中提取了我的 gradle 项目的更新版本。我删除了“build”文件夹并重建了项目,这清除了错误。
  • 感谢您的跟进。我不记得是什么为我解决了这个问题。

标签: android android-studio gradle kotlin


【解决方案1】:

当您有两个名称相同但注释不同的函数时,通常会发生这种情况。

例如:

@PrePersist
public fun loadExclusions(assetIds: List){
}

@PreUpdate
public fun loadExclusions(assetIds: List){
}

【讨论】:

  • 好主意,但只有一个具有该名称的函数。它似乎已经消失了,但我不能说为什么。我已经更新了 Android Studio,所以它可能已经修复了。
猜你喜欢
  • 2015-07-08
  • 2020-06-18
  • 2015-09-01
  • 2018-11-15
  • 1970-01-01
  • 1970-01-01
  • 2015-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多