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

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

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

3.2k
Kotlin的继承
Kotlin

Kotlin的继承

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

2.7k
Kotlin循环语句
Kotlin

Kotlin循环语句

Kotlin循环语句每门语言都要学一下循环语句,虽然每种语言都有for、while等循环,但总有些各自的特色。1、for循环for循环遍历集合或者数组,使用 in 关键字遍历任何提供迭代器。语法:例:先定义一个数组或集合array:遍历集合array:通常还需要用到索引index,调用集合的withIndex()方法参与循环遍历。例:使用下面的方式遍历for循环,同时获取元素当前索引index和当

2.5k