Kotlin中“Default interface methods are only supported starting with Android 7.0”错误:如何修复?
大家好!我是Kotlin和Android开发的新手,遇到了一个令人困惑的错误。我正在编写一个使用接口的简单项目,想像Java 8那样在接口中直接使用方法的默认实现。代码大致如下:
```kotlin
interface Clickable {
fun onClick() // 抽象方法
fun showToast() { // 带默认实现的方法
println("Clicked!")
}
}
class Button : Clickable {
override fun onClick() {
showToast() // 调用默认方法
}
}
```
在Studio中一切编译正常,但当我在Android 6.0 (API 23)的模拟器上运行时,应用崩溃并报错:
“Default interface methods are only supported starting with Android 7.0 (Nougat)”。
我使用的是compileSdk 34和minSdk 21。为什么会这样?Kotlin不是应该完全兼容Java 8吗?如何让它在旧版Android上工作?是否需要在Gradle中添加某些标志?或者干脆放弃接口中的默认方法?