AIDL中的parcelize注释:不兼容的类型:无法将对象转换为MyCustomObject

时间:2018-06-08 10:06:16

标签: android kotlin parcelable aidl kotlin-android-extensions

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

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

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

  

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

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

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

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

任何想法有什么不对?

编辑:5天后没有任何评论,我创建了a ticket for this issue

1 个答案:

答案 0 :(得分:1)

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

之所以会这样,是因为createFromParcel()不会返回类T,而是返回Object

更新来源后,我将更新答案。