java.lang.RuntimeException:Parcelable遇到ClassNotFoundException,读取Serializable对象(name = xx.MyClass)

时间:2017-01-06 17:32:58

标签: android serialization service bundle classnotfoundexception

几天前我重构了我的代码,以便在启动我的服务时,我在Bundle中放了一个自定义类

public class MyClass implements Serializable {
  private double lat;
  private double lng
}

我犯了一个错误就是没有输入serialVersionUID而且我的ACRA受到成千上万的异常的打击说'..不能用id = xxx反序列化xx' 所以我所做的就是在MyClass中推送一个具有serialVersionUID = -1的版本,但问题似乎没有得到解决,因为现在错误就是这样说的 '... canot反序列化xx,id = -1,因为id是xxx'

所以我做的是删除MyClass并创建一个MyClass2,因为我认为它只是忽略旧的MyClass并直接使用新的MyClass2。好吧没有..我仍然有与这些desesialisation问题有关的错误..所以我放弃了,而不是传递自定义对象直接传递捆绑中的两个原语..

但即使这样做了......我还有这个鬼MyClass狩猎我!!! 更糟糕的是MyClass甚至不再存在于我的项目中!所以我不知道Android现在在做什么,不知道为什么它仍然试图反序列化一个甚至不再是代码的类......

java.lang.RuntimeException: Unable to start service xx.MyService@d2ef12e with Intent { act=ACTION_START flg=0x4 cmp=cc/.MyService (has extras) }: java.lang.RuntimeException: Parcelable encountered ClassNotFoundException reading a Serializable object (name = xx.MyClass)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3084)
at android.app.ActivityThread.access$2200(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1489)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:234)
at android.app.ActivityThread.main(ActivityThread.java:5526)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.RuntimeException: Parcelable encountered ClassNotFoundException reading a Serializable object (name = xx.MyClass)
at android.os.Parcel.readSerializable(Parcel.java:2543)
at android.os.Parcel.readValue(Parcel.java:2346)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2645)
at android.os.BaseBundle.unparcel(BaseBundle.java:221)
at android.os.BaseBundle.get(BaseBundle.java:281)
at xxMyService.onStartCommand(ScanService.java:184)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3067)
... 8 more
Caused by: java.lang.ClassNotFoundException: xx.MyClass
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:324)
at android.os.Parcel$2.resolveClass(Parcel.java:2529)

注意我个人从未设法重现此错误...但我看到它用数百种不同的设备轰炸我的ACRA日志

0 个答案:

没有答案