在 AIDL 中包裹批注:不兼容的类型:对象无法转换为 MyCustomObject



我正在将我的模型类重写为Kotlin,它必须Parcelable并在AIDL中使用:

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

在编译过程中,它崩溃并显示错误:

错误:不兼容的类型:对象无法转换为我的自定义对象

并在生成的代码中指向此行:

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

我将此注释用于其他目的,没关系,仅在 AIDL 中我发现到目前为止不匹配。

任何想法出了什么问题?

编辑:5天后没有一条评论,我已经为这个问题创建了一个票证。

这是 Kotlin 中的一个错误,所以我将这个问题重定向到 JetBrains。 您可以在此处跟踪它:KT-25807。

发生这种情况,因为createFromParcel()不返回类T,而是返回Object

UPD

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

最新更新