Avatar ·

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中添加某些标志?或者干脆放弃接口中的默认方法?