异常:运行时发生未知类型代码的解组



我正在开发Android应用程序,我们是一个团队。我面临着一个严重的问题。当我试图从意图中获取数据时,它会给我以下异常

包裹android.os.Parcel@355932a:在偏移712处解组未知类型代码 4784211

我知道在SO上有很多与这个问题有关的帮助材料,但我的情况不同,令人难以置信。。。。。

这里有一个快速代码来查看我是如何获得我的对象的

try {
if (data.hasExtra("KEY_MY_MODEL")) { 
MyCustomModel newSelectedModel = data.getParcelableExtra("KEY_MY_MODEL");

//DO SOME THING WITH OBJECT
}
} catch (Exception e) {
e.printStackTrace();
}

案例1:如果(data.hasExtra("KEY_MY_MODEL"(({,我在第一行得到异常

这很有趣,因为当我在调试时检查intent对象(数据(时,如果我使用调试查看intent对象,我可以看到所有的自定义对象。

获取对象的键是相同的,如果在任何情况下键是错误的,我认为if条件中的代码都不能运行。因为它将返回false。

但它并没有返回false,而是给出了上面提到的异常。

案例2:正如我告诉你的,我们正在团队中工作,同一组代码在其他系统上完美运行,但当我从系统中运行应用程序并在设备上安装应用程序时,它会出现我上面提到的异常。

这非常令人沮丧。正如我在S.O上读到的,我认为proguard有问题,但它仍然没有帮助。知道为什么会发生这种事吗?这看起来像一个大虫子。

注意:我使用的是A.S.3.5和其他系统上的A.S.3.5正在使用中,即使我们有相同的sdk集,配置和其他东西也很安静两边都一样

这似乎是ProGuard问题

只需在proguard.rules.pro/txt中添加此行

-keepclassmembers class * implements android.os.Parcelable {
static ** CREATOR;
}