kotlinx.android.parcel
包的annotation class Parcelize
替换为不来自kotlin-android-extensions
插件的@Parcelize
?kotlinx.android.parcel
包的annotation class Parcelize
替换为不来自kotlin-android-extensions
插件的@Parcelize
?这应该是新的插件:https://plugins.gradle.org/plugin/org.jetbrains.kotlin.plugin.parcelize
如果使用Plugins DSL,可以在子模块中使用插件ID。确保项目类路径中有最新的Kotlin Android插件。
// project build.gradle
plugins {
..
id "org.jetbrains.kotlin.android" version "1.4.20" apply false
}
// app build.gradle
plugins {
..
id 'kotlin-parcelize'
}
使用kts时,您可以编写->
// project build.gradle.kts
plugins {
..
kotlin("android") version "1.4.20" apply false
}
// app build.gradle.kts
plugins {
..
id("kotlin-parcelize")
}
--- OR Legacy Plugin Application ---
步骤1。升级到最新的 Kotlin 版本 - 1.4.20
并替换
<s>apply plugin: 'kotlin-android-extensions'</s>
使用此->
apply plugin: 'kotlin-parcelize'
第二步。从android {}中删除此代码。
<s>androidExtensions {
experimental = true
}
</s>
第三步。最后,替换旧的引入 ->
<s>import kotlinx.android.parcel.Parcelize
</s>
使用新的导入
import kotlinx.parcelize.Parcelize
首先,您需要将kotlin-parcelize
插件添加到您的模块中。
plugins {
..
id 'kotlin-parcelize'
}
然后将您旧的导入语句从
import kotlinx.android.parcel.Parcelize
为了
import kotlinx.parcelize.Parcelize
kotlin-parcelize
插件仅在kotlin版本1.4.20及以上版本中分离,并且在此版本以下的版本中将找不到该插件。 - guneetgstar使用Groovy
build.gradle
(项目级别)
dependencies {
// .... project level dependencies
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20-RC"
}
build.gradle
(应用级别)
plugins {
...
id 'kotlin-parcelize'
}
以及数据类
import android.os.Parcelable
import kotlinx.parcelize.Parcelize
@Parcelize
class User(
val firstName: String,
val lastName: String,
val age: Int
): Parcelable
您可以在此处找到最新版本 https://plugins.gradle.org/plugin/org.jetbrains.kotlin.plugin.parcelize
首先,您应该升级依赖版本。 然后,您应该更改一些导入以消除警告并使用正确的方式。
在我的情况下(使用macOS),只需按Command + Shift + R
找到这个:import kotlinx.android.parcel.Parcelize
替换为:import kotlinx.parcelize.Parcelize
很好,现在就对了!
只需更新您的导入
从:import kotlinx.android.parcel.Parcelize
到:import kotlinx.parcelize.Parcelize
project build.gradle
部分是用来做什么的?看起来好像不是必需的。 - Florian Waltherkotlin-android
插件,它默认添加到新项目中。 - Florian Walther