我正在开发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;
}