[英]"Unresolved reference: Parcelize" after updating to Kotlin 1.3.30
I was using Kotlin 1.3.21 for a long time together with kotlin-android-extensions
plugin in experimental mode for a long time.我在实验模式下长期使用 Kotlin 1.3.21 和kotlin-android-extensions
插件。 Today I swtiched to Kotlin 1.3.30 just by bumping the version and now wherever I used @Parcelize
annotation I see the error: Unresolved reference: Parcelize
.今天我只是通过修改版本切换到 Kotlin 1.3.30,现在无论我在哪里使用@Parcelize
注释,我都会看到错误: Unresolved reference: Parcelize
。
Here's how I enable android extensions:以下是我启用 android 扩展的方法:
apply plugin: 'kotlin-android-extensions'
androidExtensions {
experimental = true
features = ["parcelize"]
}
Notice, that I tried without explicitly declaring required features and it didn't work as well.请注意,我在没有明确声明所需功能的情况下进行了尝试,但效果不佳。
Also notice that I use Grrovy Gradle DSL.另请注意,我使用 Grrovy Gradle DSL。
How can I enable Parcelize
back with Kotlin 1.3.30?如何使用 Kotlin 1.3.30 重新启用Parcelize
?
EDIT Here's my app level build.gradle
编辑这是我的应用程序级别build.gradle
apply plugin: 'com.android.application'
apply plugin: "de.mannodermaus.android-junit5"
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply from: "../versions.gradle"
android {
compileSdkVersion 28
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "com.myapp.dtt"
minSdkVersion 18
targetSdkVersion 28
versionCode 1
versionName "1.0"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
test.java.srcDirs += 'src/test/kotlin'
androidTest.java.srcDirs += 'src/androidTest/kotlin'
}
testOptions {
junitPlatform {
filters {
engines {
include 'spek2'
}
}
}
}
}
detekt {
input = files("src/main/kotlin")
baseline = file("detekt-baseline.xml")
}
androidExtensions {
experimental = true
features = ["parcelize"]
}
dependencies {
kapt "com.google.dagger:dagger-compiler:$dagger_version"
kapt "com.google.dagger:dagger-android-processor:$dagger_version"
kapt "com.github.bumptech.glide:compiler:$glide_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation "com.google.android.material:material:$material_version"
implementation "androidx.lifecycle:lifecycle-runtime:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
implementation "androidx.appcompat:appcompat:$appcompat_version"
implementation "androidx.recyclerview:recyclerview:$recyclerview_version"
implementation "androidx.constraintlayout:constraintlayout:$constraint_layout_version"
implementation "com.google.dagger:dagger:$dagger_version"
implementation "com.google.dagger:dagger-android:$dagger_version"
implementation "com.google.dagger:dagger-android-support:$dagger_version"
implementation "io.reactivex.rxjava2:rxjava:$rx_java_version"
implementation "io.reactivex.rxjava2:rxandroid:$rx_android_version"
implementation "io.reactivex.rxjava2:rxkotlin:$rx_kotlin_version"
implementation "com.github.bumptech.glide:glide:$glide_version"
debugImplementation "com.squareup.leakcanary:leakcanary-android:$leak_canary_version"
releaseImplementation "com.squareup.leakcanary:leakcanary-android-no-op:$leak_canary_version"
testImplementation "org.spekframework.spek2:spek-dsl-jvm:$spek_version"
testImplementation "org.spekframework.spek2:spek-runner-junit5:$spek_version"
testImplementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
testImplementation "org.junit.jupiter:junit-jupiter-api:$junit_jupiter_version"
testImplementation "io.mockk:mockk:$mockk_version"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junit_jupiter_version"
}
I find the error我发现错误
Kotlin plugin should be enabled before 'kotlin-android-extensions'
so change the order to所以把顺序改成
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
it work fine (:з」∠) 。效果不错(:з」∠) 。
good luck to you.祝你好运。
I upgraded Kotlin plugin to latest version (1.3.61) and this error was removed.我将 Kotlin 插件升级到最新版本 (1.3.61),此错误已删除。
id 'kotlin-parcelize'
or要么
apply plugin: 'kotlin-parcelize'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.