cod*_*rox 7 android android-studio kotlin-android-extensions
我使用 Android Studio 4.1 Canary 6 版本并尝试使用apply plugin: 'kotlin-kapt'插件,然后在构建项目期间出现此错误。
e: java.lang.NoSuchMethodError: org.jetbrains.kotlin.codegen.state.GenerationState$Builder.isIrBackend(Z)Lorg/jetbrains/kotlin/codegen/state/GenerationState$Builder;
Run Code Online (Sandbox Code Playgroud)
这里是项目级别的gradle
buildscript {
ext.kotlin_version = "1.3.70"
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0-alpha06'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Run Code Online (Sandbox Code Playgroud)
这是应用程序级别的gradle
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
}
......
......
dependencies {
//room database
implementation 'androidx.room:room-runtime:2.2.5'
implementation "androidx.room:room-ktx:2.2.5"
kapt 'androidx.room:room-compiler:2.2.5'
}
Run Code Online (Sandbox Code Playgroud)
我在使用 Compose 时遇到了同样的问题,因为与 kotlinCompilerVersion 相比,我为 stdlib 和 gradle 插件使用了不同的版本:
// WRONG: Different Kotlin versions
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.20"
android {
composeOptions {
kotlinCompilerExtensionVersion compose_version
kotlinCompilerVersion '1.4.10'
}
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.4.20"
}
Run Code Online (Sandbox Code Playgroud)
根据我的情况,如果您不使用 Compose,我的猜测是存在使用不同 Kotlin 版本的依赖项(甚至子模块)并且编译器崩溃。这似乎与 Kotlin 的 IR 后端有关。
| 归档时间: |
|
| 查看次数: |
1661 次 |
| 最近记录: |