Kotlin 1.3.50 Parcelize 未解决的引用错误
Kotlin 1.3.50 Parcelize unresolved reference error
使用我的第一个 android 应用程序,kotlin 1.3.50。我最初实现了 Parcelable,但切换到 parcelize,然后添加了枚举。这是我的数据 class
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
)
一个问题提到 build.gradle 中的插件顺序作为问题的来源。这是我的
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
知道为什么我的@Parcelize 无法解析吗?
您需要添加
androidExtensions {
experimental = true
}
在您应用的 build.gradle
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
....
}
buildTypes {
release {
...
}
}
androidExtensions {
experimental = true
}
}
如果您在 2021 年仍然遇到此问题,可以按照此操作
不要忘记 Kotlin 中的 Parcelize 功能是 kotlin-android-extensions
编译器插件的一部分,因此删除该插件最终会使所有依赖于 Parcelize 的 Parcelable 类 无法编译注解。
JetBrains 从 Kotlin 提取 Parcelize Android 扩展到新插件,
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
使用我的第一个 android 应用程序,kotlin 1.3.50。我最初实现了 Parcelable,但切换到 parcelize,然后添加了枚举。这是我的数据 class
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
)
一个问题提到 build.gradle 中的插件顺序作为问题的来源。这是我的
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
知道为什么我的@Parcelize 无法解析吗?
您需要添加
androidExtensions {
experimental = true
}
在您应用的 build.gradle
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
....
}
buildTypes {
release {
...
}
}
androidExtensions {
experimental = true
}
}
如果您在 2021 年仍然遇到此问题,可以按照此操作
不要忘记 Kotlin 中的 Parcelize 功能是 kotlin-android-extensions
编译器插件的一部分,因此删除该插件最终会使所有依赖于 Parcelize 的 Parcelable 类 无法编译注解。
JetBrains 从 Kotlin 提取 Parcelize Android 扩展到新插件,
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