Android BadParcelableException仅与签名的apk

时间:2013-10-09 14:33:00

标签: android android-studio proguard parcelable

当我从调试运行我的项目时,一切正常。然而,当我使用从Android Studio生成的签名apk运行它时(使用proguard),使用getParcelable时出现以下错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{mypackage.android/mypackage.mobile.android.activities.searchActivity}: android.os.BadParcelableException: Parcelable protocol requires a Parcelable.Creator object called  CREATOR on class mypackage.android.a.d.a

为什么只有我签名的apk才会发生此异常?在我的proguard配置文件中,我必须使用dontwarn android.support.v4.**来避免proguard错误。是回来咬我吗?

2 个答案:

答案 0 :(得分:12)

您需要保护CREATOR字段免受proguard的混淆

将此行添加到您的proguard配置中:

-keep class * implements android.os.Parcelable { 
   public static final android.os.Parcelable$Creator *; 
}

答案 1 :(得分:0)

对于新来者,如果您忘记定义CREATOR字段的最终版本,也会发生这种情况

public static final Parcelable.Creator CREATOR