java - 为什么在 Kotlin 类中实现 Cloneable 接口(interface)会导致 "error: no interface expected here"?

标签 java android kotlin interface

我正在恢复我一年未触及的 Android 应用程序的工作。它曾经在当时 build 得很好。现在,当我在 Android Studio 中打开它时,它会提示各种库、插件等已过时。试图自己解决这个问题,我无法摆脱所有同步/构建错误,所以最后我将 Android Studio(我认为是从 3.3 左右)更新到 3.5.2 并让它更新它想要的任何插件等到。

然后我遇到了一些问题,表明我应该从旧的支持包迁移到 AndroidX(不记得细节)。为了迁移,我执行了以下操作:

  • 将所有模块的 compileSdkVersion 设置为 28
  • 在所有模块的build.gradle中,将依赖更新为28
  • 将 android.useAndroidX=true 和 android.enableJetifier=true 添加到 gradle.properties
  • Ran 重构 |迁移到 AndroidX...

现在 Gradle 同步可以正常工作,但构建失败并出现此错误:

> Task :app:kaptDebugKotlin FAILED
e: [...]\app\build\tmp\kapt3\stubs\debug\com\[...]\MyClass.java:9: error: no interface expected here
public final class MyClass extends java.lang.Cloneable {
                                           ^

FAILURE: Build failed with an exception.

以上错误出现在生成的代码中。上面生成的代码如下所示:

// MyClass.kt
class MyClass : Cloneable {
...
}

我理解 java.lang.Cloneable 是一个接口(interface),生成的代码有 extends 而不是 implements。但如前所述,这曾经有效,那么我做错了什么?

最佳答案

我又看了一眼项目级的build.gradle,找到了。 Android Studio 建议再次更新 Kotline 版本。我改成了

ext.kotlin_version = '1.3.61'

现在我可以编译了。

关于java - 为什么在 Kotlin 类中实现 Cloneable 接口(interface)会导致 "error: no interface expected here"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59129566/

相关文章:

安卓 : Showing wrong end date (one day before of actual date) in Google Calendar while adding an event with intent

generics - Kotlin函数可打印所有枚举的序数/名称对

android - Android解析XML文件获取特定数据

android - 如何在 Android 中为数据制作表格

java - 从 XML 与 JAVA 对象创建 HTML

java - NoClassDefFound错误: org/hamcrest/Matchers using PowerMock-OSGi

java - 尝试编写一个代码,在不使用循环的情况下从最大到最小打印五个数字

android - 遇到软键盘问题

android - 无法从内部类 : Kotlin android 访问变量

java - 在 Axis 服务上使用 Hapi : "Can' t create XML document"