I'm rewriting my model class to Kotlin, which has to be Parcelable and used in AIDL:

@Parcelize
data class MyCustomObject(val value1: String, val value2: String) : Parcelable

在编译过程中,它崩溃并出现错误:

错误:类型不兼容:对象无法转换为MyCustomObject

and points to this line in generated code:

if ((0!=_reply.readInt())) {
    _result = com.mypackagename.MyCustomObject.CREATOR.createFromParcel(_reply);
}

我把这个注释用于其他目的,它还可以,只是在AIDL中我发现了不匹配.

Any ideas what's wrong?

编辑:5天后没有任何 comments ,我已经创建了a ticket for this issue条.

推荐答案

这是Kotlin中的一个bug,所以我将这个问题重定向到JetBrains.

这是因为createFromParcel()不返回T类,而是返回Object类.

UPD

Parcelize注记现在可由Google维护,该问题已在Kotlin版本1.5.+https://issuetracker.google.com/issues/110131003中修复

Kotlin相关问答推荐

在Kotlin中处理结果的高阶函数

在intellij中使用kotlin符号和floordiv

为什么在Spring中,对事务性方法调用的非事务方法调用仍然在事务中运行?

Android Jetpack编写androidx.compose.oundation.lazy.grid.Items

如何确保Kotlin子类已完成初始化?

为什么使用 return instance ?: synchronized(this) { instance ?: PreferenceParameterState(context) } 时无法获得单例?

使用 Kotlin 的 Springboot 中缺少 ResponseEntity 正文属性

Kotlin:我可以将函数分配给 main 的伴随对象中的变量吗?

如何使用 Firebase 和 Kotlin 在文本 (Jetpack Compose) 中显示当前用户名?

Kotlin 使用委托进行隐式覆盖

Kotlin:如何使用第一个参数的默认值进行函数调用并为第二个参数传递一个值?

Android 导航组件 - 向上导航打开相同的片段

禁用 Android 12 默认启动画面

Map.mapTo 到另一个map

如何通过反射使用 Kotlin 对象

为什么 Kotlin Pair 中的条目不可变?

如果我可以将 Flow 和 StateFlow 与生命周期范围 \ viewLifecycleOwner.lifecycleScope 一起使用,那么在 ViewModel 中使用 LiveData 有什么意义

spring.config.location 在 Spring Boot 2.0.0 M6 上不起作用

如何将 CameraView 与 Jetpack Compose 一起使用?

从 java 活动 *.java 启动 kotlin 活动 *.kt?