【发布时间】:2018-11-18 08:54:54
【问题描述】:
我正在将我的模型类重写为 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,没有任何评论。
【问题讨论】:
-
它是否适用于 java?
-
您还有 MyCustomObject.aidl(描述您的数据类的那个吗?)
-
@IvanMilisavljevic,是的,确实如此。我也有那个 object.aidl。
-
对不起,我还在使用 java,我最好的猜测是 parcelable 生成器和 Kotlin 数据类有问题。您是否尝试清理和重建项目的一个愚蠢建议?
-
@IvanMilisavljevic,是的,以这种方式尝试过。问题在于注释本身。在 kotlin 中可打包的样板也可以正常工作。
标签: android kotlin parcelable aidl kotlin-android-extensions