1
80
因为这不是在“答案”中回答,而是在评论中,我将发布一个答案: 正如@max gontar指出的那样,您应该使用locationType.class.getClassLoader()来获取正确的类加载器并消除ClassNotFound异常,即:
|
2
34
以下设置也有同样的问题:某个处理程序创建了一条消息,并通过信使将其发送到远程服务。 消息包含一个包,我把我的parcelable后代放在其中:
当远程服务试图断开时,我也有同样的例外。在我的例子中,我已经注意到远程服务实际上是一个独立的操作系统进程。因此,我必须设置当前的类加载器,以供服务端的解压过程使用:
bundle.setClassLoader设置用于加载适当Parcelable类的类加载器。在远程服务中,需要将其重置为当前类加载器。 |
3
9
我发现问题是我没有将应用程序类加载器传递给解组函数:
而不是:
或
|
4
8
只需在这里加上我的2美分,因为我在这件事上花了超过半天的时间。如果不按完全相同的顺序放置写入方法和读取方法,则可能会出现此错误。例如,以下内容可能是错误的:
顺便说一句,作者做得对,但总有一天会有所帮助。 |
5
6
我对Parcelable不是很熟悉,但是如果它类似于序列化,那么每次调用编写实现接口的对象都会导致对WriteToParcel()的递归调用。因此,如果沿着调用堆栈的某个对象失败或写入空值,则可能无法正确构造启动调用的类。 尝试: 在第一次调用writeToParcel()时开始的所有类中跟踪writeToParcel()调用堆栈,并验证是否正确发送了所有值。 |
6
6
我也得到了ClassNotFoundException,并将我的解决方案发布到BC,这里的答案引导我找到了正确的方向。我的场景是我已经嵌套了Parcelable对象。对象A包含对象B的数组列表。两者都实现Parcelable。 编写类A中B对象的列表:
阅读A班名单:
谢谢您! |
7
5
不要使用writeparcelable和readparcelable,而是直接使用writetoparcel和createfromparcel。所以更好的代码是:
|
8
1
我也有同样的问题,用一种非常愚蠢的方式来解决它,我不知道它是否叫做解决方案。 假设您有这个类要传递给另一个活动
当我改变了:
到
问题解决了吗????!!!!!! |
9
0
如果有一个对象具有列表对象类型的属性,则在读取该属性时应传递类加载器,例如:
|
Abhilash Das · 输入文本时,编辑文本与工具栏重叠 1 年前 |
Community wiki · 局部变量可能尚未初始化 1 年前 |
jvargas · 如何获取上个月的第一天和最后一天以及一年的第一天 1 年前 |