java - com.here.android.mpa.search.PlaceRequest 不能强制转换为 java.io.Serializable
问题描述
Android 的 HEAR API 类似乎不可序列化,因此在使用片段时,您无法将它们作为参数传递给片段。有办法解决吗?
我有一个显示 PlaceLink 标题和其他数据的回收站列表。当我单击列表中的一个项目时,我需要将 PlaceLink 发送到新片段。我调用 getInstance 方法并传递 PlaceLink,然后尝试将 PlaceLink 添加到参数包中。但是,您不能,因为它不是可序列化的,因此您不能通过 putSerializable 添加它。
这是我需要使用的片段中的代码:
public static RestaurantFoundDetails newInstance(PlaceLink placeLink) {
RestaurantFoundDetails fragment = new RestaurantFoundDetails();
Bundle args = new Bundle();
args.putSerializable(ARG_PARAM1, placeLink);
fragment.setArguments(args);
return fragment;
}
如果我使用 HEAR API,似乎没有解决方法!
如果您尝试解决它,当您的应用暂停时,您会收到此错误:
java.lang.RuntimeException: Parcel: unable to marshal value com.here.android.mpa.search.PlaceLink@4312236b
at android.os.Parcel.writeValue(Parcel.java:1772)
at android.os.Parcel.writeList(Parcel.java:926)
at android.os.Parcel.writeValue(Parcel.java:1719)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:838)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1542)
at android.os.Bundle.writeToParcel(Bundle.java:1232)
at android.os.Parcel.writeBundle(Parcel.java:878)
at android.support.v4.app.FragmentState.writeToParcel(FragmentState.java:123)
at android.os.Parcel.writeTypedArray(Parcel.java:1462)
at android.support.v4.app.FragmentManagerState.writeToParcel(FragmentManager.java:619)
at android.os.Parcel.writeParcelable(Parcel.java:1791)
at android.os.Parcel.writeValue(Parcel.java:1697)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:838)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1542)
at android.os.Bundle.writeToParcel(Bundle.java:1232)
at android.app.IActivityManager$Stub$Proxy.activityStopped(IActivityManager.java:4604)
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3934)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
解决方案
该功能在 HereSDK 中不可用,目前没有计划实施。
BR
推荐阅读
- python - 如何调试停止的`ProcessPoolExecutor`?
- php - 如何搜索两个以上的关键字?
- mysql - 我们可以在 mysql 组复制中使用 REPEATABLE-READ 隔离级别吗?
- php - FB Marketing API - 支付系统被屏蔽,但广告账户没问题
- css - 响应式 CSSGrid 和悬停问题
- python - 单击一次后如何禁用按钮?
- reactjs - 反应钩子和antd创建表单,当我输入一些东西时,输入会模糊
- xslt-2.0 - 为什么我得到所需的变量 $depts 值的基数恰好是一;提供的值的基数大于一
- amazon-cloudformation - 创建仅限 S3 的用户
- python-3.x - Openpyxl - 如果 F 列中的值为真,则获取同一行的 A 列中的值