既然 kotlin-android-extensions 已被弃用,如何使用 @Parcelize?
How to use @Parcelize now that kotlin-android-extensions is being deprecated?
如何用不是来自 kotlin-android-extensions 插件的 Parcelize 替换 package kotlinx.android.parcel
中的 annotation class Parcelize
?
首先,您需要将 kotlin-parcelize
插件添加到您的模块。
plugins {
..
id 'kotlin-parcelize'
}
然后将您的旧导入语句从
更改为
import kotlinx.android.parcel.Parcelize
到
import kotlinx.parcelize.Parcelize
这应该是新插件:https://plugins.gradle.org/plugin/org.jetbrains.kotlin.plugin.parcelize
如果使用 插件 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
并替换
<s>apply plugin: 'kotlin-android-extensions'</s>
用这个 ->
apply plugin: 'kotlin-parcelize'
步骤 2。从 android {}
中删除此代码
<s>androidExtensions {
experimental = true
}
</s>
步骤 3。最后,替换旧的 import ->
<s>import kotlinx.android.parcel.Parcelize
</s>
新导入
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'
}
和数据class
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
只需更新您的导入
来自:import kotlinx.android.parcel.Parcelize
至:import kotlinx.parcelize.Parcelize
- kotlin-android-extensions 已弃用,因此请将其替换为 kotlin-parcelize
- 如果有用于模型 类 的 @Parcelize 注释,那么您必须将其从 kotlinx.android.parcel.Parcelize 的导入替换为导入 kotlinx.parcelize.Parcelize
如何用不是来自 kotlin-android-extensions 插件的 Parcelize 替换 package kotlinx.android.parcel
中的 annotation class Parcelize
?
首先,您需要将 kotlin-parcelize
插件添加到您的模块。
plugins {
..
id 'kotlin-parcelize'
}
然后将您的旧导入语句从
更改为import kotlinx.android.parcel.Parcelize
到
import kotlinx.parcelize.Parcelize
这应该是新插件:https://plugins.gradle.org/plugin/org.jetbrains.kotlin.plugin.parcelize
如果使用 插件 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
并替换
<s>apply plugin: 'kotlin-android-extensions'</s>
用这个 ->
apply plugin: 'kotlin-parcelize'
步骤 2。从 android {}
中删除此代码<s>androidExtensions {
experimental = true
}
</s>
步骤 3。最后,替换旧的 import ->
<s>import kotlinx.android.parcel.Parcelize
</s>
新导入
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'
}
和数据class
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
只需更新您的导入
来自:import kotlinx.android.parcel.Parcelize
至:import kotlinx.parcelize.Parcelize
- kotlin-android-extensions 已弃用,因此请将其替换为 kotlin-parcelize
- 如果有用于模型 类 的 @Parcelize 注释,那么您必须将其从 kotlinx.android.parcel.Parcelize 的导入替换为导入 kotlinx.parcelize.Parcelize