既然 kotlin-android-extensions 已被弃用,如何使用 @Parcelize?

问题描述 投票:0回答:6

如何将

annotation class Parcelize
中的
package kotlinx.android.parcel
替换为不是来自
@Parcelize
插件的
kotlin-android-extensions

android kotlin annotations parcelable
6个回答
223
投票

这应该是新插件: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

60
投票

首先,您需要将

kotlin-parcelize
插件添加到您的模块中。

plugins {
    ..
    id 'kotlin-parcelize'
}

然后将旧的导入声明从

更改
import kotlinx.android.parcel.Parcelize

import kotlinx.parcelize.Parcelize

编辑(来源):https://proandroiddev.com/migration-the-deprecated-kotlin-android-extensions-compiler-plugin-to-viewbinding-d234c691dec7


13
投票

与 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


5
投票
  1. kotlin-android-extensions 已弃用,因此请从 kotlin-parcelize
  2. 替换它
  3. 如果模型类使用了 @Parcelize 注解,那么你必须将其从 kotlinx.android.parcel.Parcelize 的导入替换为 import kotlinx.parcelize.Parcelize

2
投票

在进行任何操作之前,您应该更改依赖项版本。 之后,您应该更改一些导入以消除警告并使用正确的方法。

就我而言(使用 macOS),只需按 Command + Shift + R

找到这个:

import kotlinx.android.parcel.Parcelize

替换为:

import kotlinx.parcelize.Parcelize


0
投票

只需更新您的导入即可

来自:

import kotlinx.android.parcel.Parcelize

致:

import kotlinx.parcelize.Parcelize

© www.soinside.com 2019 - 2024. All rights reserved.