Новый ответ:
Проблема в том, что вы создаете itemBundle1
и itemBundle2
внутри eventBundle
функции *1005*, и к тому времени, когда вы вызываете putParcelableArray(Param.ITEMS, arrayOf(itemBundle1, itemBundle2))
, они все еще null
. Вы должны переместить эти 2 пакета из apply
:
override fun trackListViewEvent() {
val itemBundle1 = Bundle().apply {
putString(Param.ITEM_NAME, "name1")
putString(Param.ITEM_CATEGORY, "Category")
putString(Param.PRICE, "49.95")
putString(Param.CURRENCY, "EUR")
}
val itemBundle2 = Bundle().apply {
putString(Param.ITEM_NAME, "name2")
putString(Param.ITEM_CATEGORY, "Category")
putString(Param.PRICE, "89.95")
putString(Param.CURRENCY, "EUR")
}
val eventBundle = Bundle().apply {
putString(Param.ITEM_LIST_ID, "1234567890")
putString(Param.ITEM_LIST_NAME, "WhateverListName")
putString(Param.PRICE, "125.60")
putString(Param.CURRENCY, "EUR")
putParcelableArray(Param.ITEMS, arrayOf(itemBundle1, itemBundle2))
}
tracking.logEvent(Event.VIEW_ITEM_LIST, eventBundle)
}
Старый ответ:
В вашем текущем коде предполагаемый тип arrayOf(itemBundle1, itemBundle2)
равен Array<Bundle>
.
Вы должны принудительно Kotlin использовать Array<Parcelable>
:
putParcelableArray(Param.ITEMS, arrayOf<Parcelable>(itemBundle1, itemBundle2))