当我从调试运行我的项目时,一切正常。然而,当我使用从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错误。是回来咬我吗?
答案 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