android - 更新到 Kotlin 1.3.30 后 "Unresolved reference: Parcelize"

标签 android kotlin

我在实验模式下长期使用 Kotlin 1.3.21 和 kotlin-android-extensions 插件。今天,我只是通过修改版本切换到 Kotlin 1.3.30,现在无论我在哪里使用 @Parcelize 注释,我都会看到错误: 未解析的引用:Parcelize

以下是我启用 android 扩展的方法:

apply plugin: 'kotlin-android-extensions'

androidExtensions {
    experimental = true
    features = ["parcelize"]
}

请注意,我在没有明确声明所需功能的情况下进行了尝试,但效果不佳。

另请注意,我使用的是 Grrovy Gradle DSL。

如何在 Kotlin 1.3.30 中启用 Parcelize

编辑 这是我的应用级别 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"
}

最佳答案

我发现了错误

Kotlin 插件应该在 'kotlin-android-extensions' 之前启用

所以把顺序改成

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

它工作正常(:з」∠)

祝你好运

关于android - 更新到 Kotlin 1.3.30 后 "Unresolved reference: Parcelize",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55772345/

相关文章:

android - 同一设备上的两个用户 |设置用户 ID 行为

Android JSON 数组返回 TRANSFORM_ERROR : 103

android - 使用Kotlin从Firebase检索HashMap

android - 错误: Class is referenced as a converter but it does not have any converter methods

Android getResource() 未定义错误

android - 如何在 Go 和 Android 之间使用 RSA

kotlin - Kotlin范围函数与vs扩展运行

regex - 正则表达式不允许连续字符无空格

java - 错误“在 Junit 测试中没有公共(public) TestCase(字符串名称)或 TestCase()

java - 在 Kotlin 中解析列表的枚举