Android AIDL中的Parcelize注释:不兼容的类型:无法将对象转换为MyCustomObject
我正在将我的模型类重写为Android AIDL中的Parcelize注释:不兼容的类型:无法将对象转换为MyCustomObject,android,kotlin,parcelable,aidl,kotlin-android-extensions,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.my
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天后,我没有发表任何评论。这是Kotlin的一个bug,所以我将此问题重定向到JetBrains。 您可以在此处跟踪它: 这是因为
createFromParcel()
不返回类T
,而是返回Object
更新源代码后,我将更新答案。它是否适用于java?您是否有MyCustomObject.aidl(描述您的数据类的工具?@IvanMilisavljevic,是的,有。我也有object.aidl。对不起,我还在用java,我最好的猜测是parcelable generator和Kotlin数据类有问题。一个愚蠢的建议:你有没有尝试过清理和重建这个项目?@IvanMilisavljevic,是的,用这种方式尝试过。问题在于注释本身。kotlin的样板包也可以很好地使用。AIDL中是否使用了包装的艾滋病解决方案?有同样的问题样板实现的包裹。尽管优先级设置为“高”,但到目前为止,此错误尚未解决。。。