正在运行我的第一个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吗?
答案 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