Kotin编译报错:compiled with an incompatible version of Kotlin

QuibblerQuibbler 2024-09-03 约 3 分钟 1885 次阅读

Kotin编译报错:compiled with an incompatible version of Kotlin

先天踩坑圣体,每天都在遇到各种问题。最近引入了一个最新版本的Coil库:

//https://github.com/coil-kt/coil
    implementation("io.coil-kt:coil:2.7.0")

结果就编译报错,编译不过去了:Class 'coil.request.Disposable' was compiled with an incompatible version of Kotlin. The binary version of its metadata is 2.0.0, expected version is 1.8.0.

显然是引入的库编译所用的Kotlin版本和项目中使用的Kotlin版本不兼容导致,有两个解决方法:

1、升级kotlin版本

项目中用到的Kotlin版本过低,可以到plugins.gradle.org/plugin/org.jetbrains.kotlin.android官网查看最新的Kotlin发行版本选择升级:

plugins {
      id("org.jetbrains.kotlin.android") version "2.0.20-RC2"
    }

可能还需要升级其它一些gradle插件及依赖库,可以去Android官网查询:Android Gradle plugin API reference。

2、降低依赖库版本

如果项目不方便升级Kotlin版本,牵一发而动全身。Kotlin官方库都会用最新的版本去编译,可以选择适当降低引入依赖库的版本(够用就行,没必要追求过新)。

比如这个问题就可以降低到 2.1.0以下解决,还没有用那么新的Kotlin库去编译。

//使用koltin 1.8+ 编译
    implementation("io.coil-kt:coil:2.1.0")

相关链接:

        plugins.gradle.org/plugin/org.jetbrains.kotlin.android

        Android Gradle plugin API reference

        

相关推荐

Parcelize:Parcelable 实现生成器
Kotlin

Parcelize:Parcelable 实现生成器

Parcelize:Parcelable 实现生成器Parcelable是安卓开发中常用的序列化方式,之前分享过一个Parcelable序列化插件,方便开发者快速生成代码,提高开发效率。1、Parcelize插件Kotlin官方也推出一个Parcelable自动生成的Gradle插件:Parcelize。1.1、引入插件在项目的build.gradle中添加:id("kotlin-parceliz

2.6k
Kotlin的继承
Kotlin

Kotlin的继承

Kotlin的继承1、超类:Any类似于Java中的Object类,Kotlin也有一个叫Any的超类,是所有类的父类,所有类都默认继承自该类。超类的定义如下,其中定义了三个函数:2、open注意上面的Any类用open修饰,表示该类可以被继承。Kotlin中的类默认都是final的,无法被继承:如果想让类可以被继承,就需要用在定义类的地方用open关键字标识该类可以被继承。3、构造器继承中涉及到

2.1k
 Kotlin基本语法
Kotlin

Kotlin基本语法

Kotlin基本语法了解Kotlin语言的基本语法。1、包kotlin文件以.kt结尾,编译文件还是如此只不过在文件名后面加上Kt后缀。这一点和Java不同,Java源文件.java,编译后为.class文件。1.1、包定义每个kotlin文件的第一行就用关键字package定义该文件所在的包。例:1.2、导包用到其它kotlin文件需要使用关键字import导入,这一点和Java一样。kotli

2.1k