首页 > 解决方案 > 无符号类型和jetpack compose

问题描述

我想尝试 Jetpack Compose,但一个问题阻止我在我的项目中这样做。

我使用 Android Studio Artic Fox 2020.3.1 Beta 3 打开了我的项目,并将该项目的 kotlin 版本从 1.5.10 降级到 1.4.32,因为 Jetpack Compose 需要它。

顶级 build.gradle:

buildscript {
    ext {
        kotlin_version = '1.4.32'
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

应用级 build.gradle:

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}

这样做之后,由于无符号类型,我得到了多个错误,例如:

Unresolved reference: toUShort

来自此代码

val myShort: Short = 2
val myUShort: UShort = myShort.toUShort()

IDE 不会向我显示这些错误,它只会在我尝试构建应用程序时发生。如果我 Ctrl + 单击 toUShort 方法,它会显示 kotlin-stdlib-common:1.5.0 的文档,我可以在其中看到该方法用“@SinceKotlin("1.5")”注释。

这很奇怪,因为我从 Kotlin 1.4.10 开始使用无符号类型。它以前处于测试阶段,我不得不添加某种“@Experimental”注释,但它一直工作到现在。

我该如何解决这个问题?我需要尝试 Jetpack Compose,但如果不废弃我的大部分代码库,我就无法使用无符号类型。

标签: androidkotlinandroid-jetpack-compose

解决方案


推荐阅读