Android Kotlin 1.3.50包裹未解决的参考错误

Android Kotlin 1.3.50包裹未解决的参考错误,android,kotlin,kotlin-experimental,Android,Kotlin,Kotlin Experimental,使用我的第一个android应用程序kotlin 1.3.50。我最初实现了Parcelable,但切换到parcelize,然后添加了枚举。这是我的数据类 package com.igniterobotics.scouting_2019.Models import android.os.Parcel import android.os.Parcelable import com.igniterobotics.scouting_2019.Enums.Movement import com.ig

使用我的第一个android应用程序kotlin 1.3.50。我最初实现了Parcelable,但切换到parcelize,然后添加了枚举。这是我的数据类

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'
知道为什么无法解决I@Parcelize吗?

您需要添加

androidExtensions {
        experimental = true
    }
在应用程序的build.gradle中,您需要添加

androidExtensions {
        experimental = true
    }
android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
       ....
    }
    buildTypes {
        release {
            ...
        }
    }

    androidExtensions {
        experimental = true
    }
}

在应用程序的build.gradle中

如果您在2021年仍面临此问题,您可以遵循以下步骤

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
       ....
    }
    buildTypes {
        release {
            ...
        }
    }

    androidExtensions {
        experimental = true
    }
}
不要忘记Kotlin中的Parcelize功能是
Kotlin android extensions
编译器插件的一部分,因此删除该插件将导致所有依赖Parcelize注释的Parcelable类无法编译。 JetBrains将Kotlin Android扩展中的Parcelize提取到一个新插件中

kotlin-parcelize
首先,您需要将
kotlin parcelize
插件添加到您的模块中

plugins {
    ..
    id 'kotlin-parcelize'
}
然后将旧的导入语句从

import kotlinx.android.parcel.Parcelize

范例

    import kotlinx.parcelize.Parcelize
    import android.os.Parcelable

    @Parcelize
    class User(val name: String, val age: Int): Parcelable

如果你在2021年仍然面临这个问题,你可以遵循这个原则

不要忘记Kotlin中的Parcelize功能是
Kotlin android extensions
编译器插件的一部分,因此删除该插件将导致所有依赖Parcelize注释的Parcelable类无法编译。 JetBrains将Kotlin Android扩展中的Parcelize提取到一个新插件中

kotlin-parcelize
首先,您需要将
kotlin parcelize
插件添加到您的模块中

plugins {
    ..
    id 'kotlin-parcelize'
}
然后将旧的导入语句从

import kotlinx.android.parcel.Parcelize

范例

    import kotlinx.parcelize.Parcelize
    import android.os.Parcelable

    @Parcelize
    class User(val name: String, val age: Int): Parcelable

您缺少实验标志您缺少实验标志我尝试在插件之后添加它,它在正确的位置吗?我很少使用gradle文件,因为我大部分都做C#开发。如果那是正确的位置,可能是我输入了错别字什么的。将它添加到android{…}TagI尝试在插件之后添加它,它在正确的位置吗?我很少使用gradle文件,因为我大部分都做C#开发。如果那是正确的位置,可能是我输入了错别字什么的。将它添加到android{…}标记中谢谢。我会在几个小时后测试这个。这是我正在从事的个人项目。我在根级别添加了androidExtensions,而不是android节点的子节点。另外,我的数据类最后没有:Parcelable。谢谢。我会在几个小时后测试这个。这是我正在从事的个人项目。我在根级别添加了androidExtensions,而不是android节点的子节点。另外,我的数据类最后没有:Parcelable。