如何将
annotation class Parcelize
中的 package kotlinx.android.parcel
替换为不是来自 @Parcelize
插件的 kotlin-android-extensions
?
这应该是新插件: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")
}
--- 或旧版插件应用程序 ---
步骤1。更新到最新的 kotlin 版本 -
1.4.20
并替换
apply plugin: 'kotlin-android-extensions'
有了这个->
apply plugin: 'kotlin-parcelize'
步骤 2。从 android {} 中删除此代码
androidExtensions {
experimental = true
}
步骤 3。最后,替换旧的导入 ->
import kotlinx.android.parcel.Parcelize
全新进口
import kotlinx.parcelize.Parcelize
首先,您需要将
kotlin-parcelize
插件添加到您的模块中。
plugins {
..
id 'kotlin-parcelize'
}
然后将旧的导入声明从
更改import kotlinx.android.parcel.Parcelize
到
import kotlinx.parcelize.Parcelize
与 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