Kotlin 1.3.50打包未解决的参考错误

时间:2019-10-15 12:49:11

标签: android kotlin kotlin-experimental

正在运行我的第一个android应用kotlin 1.3.50。我最初实现了Parcelable,但是切换为宗地化,然后添加了枚举。这是我的数据类

S-1-5-10

一个问题提到了build.gradle中的插件顺序作为问题的来源。这是我的

package com.igniterobotics.scouting_2019.Models

import android.os.Parcel
import android.os.Parcelable
import com.igniterobotics.scouting_2019.Enums.Movement
import com.igniterobotics.scouting_2019.Enums.Preload
import com.igniterobotics.scouting_2019.Enums.StartingPosition

@Parcelize
data class AutonResult(var hatchCount: Int, var cargoCount: Int, 
      var intakeDrop: Int, var itemDrops: Int, var startingPosision: StartingPosition, 
      var preload: Preload, var movement: Movement
)

有人知道为什么我无法解决@Parcelize吗?

3 个答案:

答案 0 :(得分:1)

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
       ....
    }
    buildTypes {
        release {
            ...
        }
    }

    androidExtensions {
        experimental = true
    }
}

答案 1 :(得分:0)

您需要添加

androidExtensions {
        experimental = true
    }

在您应用的build.gradle中

答案 2 :(得分:0)

如果您在 2021 年仍面临此问题,您可以按照此操作

不要忘记 Kotlin 中的 Parcelize 功能是 kotlin-android-extensions 编译器插件的一部分,因此删除插件最终会使所有依赖 Parcelize 注释的 Parcelable 类无法编译。 JetBrains 将 Parcelize 从 Kotlin Android Extensions 提取到一个新插件中,

kotlin-parcelize

首先,您需要将 kotlin-parcelize 插件添加到您的模块中。

plugins {
    ..
    id 'kotlin-parcelize'
}

然后将旧的导入语句从

import kotlinx.android.parcel.Parcelize

import kotlinx.parcelize.Parcelize

示例

    import kotlinx.parcelize.Parcelize
    import android.os.Parcelable

    @Parcelize
    class User(val name: String, val age: Int): Parcelable

more