小编Mah*_*ban的帖子

Android:错误:不能从静态上下文中引用非静态类型变量 T

我有以下课程:

@Parcelize
data class Collection<T : Parcelable> constructor(
    var models: List<T>,
    var cursor: String?
) : Parcelable
Run Code Online (Sandbox Code Playgroud)

当我使用 时Kotlin 1.4.10,项目正确构建,没有任何错误,然后我将项目更新为Kotlin 1.4.21,并迁移到使用kotlin-parcelize而不是kotlin-android-extensions,因此在 Kotlin 更新后,构建项目时出现以下错误:

> Task :domain:kaptDebugKotlin FAILED
/Library/DevelopmentArea/workspace/baaz_android_new/clean_domain/domain/build/tmp/kapt3/stubs/debug/com/myapp/domain/model/Collection.java:101: error: non-static type variable T cannot be referenced from a static context
        public final com.myapp.domain.model.Collection<T>[] newArray(int size) {
                                                                   ^/Library/DevelopmentArea/workspace/baaz_android_new/clean_domain/domain/build/tmp/kapt3/stubs/debug/com/myapp/domain/model/Collection.java:110: error: non-static type variable T cannot be referenced from a static context
        public final com.myapp.domain.model.Collection<T> createFromParcel(@org.jetbrains.annotations.NotNull()
Run Code Online (Sandbox Code Playgroud)

注意:我使用的是 Android Studio 4.1.1

android parcelable kotlin kotlin-android-extensions

8
推荐指数
1
解决办法
875
查看次数