Android BadParcelableException仅限于已签名的apk
当我从调试运行我的项目时,一切正常。然而,当我与我在Android工作室(使用ProGuard)产生的签署APK运行它,我开始使用下面的错误时getParcelable:Android BadParcelableException仅限于已签名的apk
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错误。那会回来咬我吗?
您需要保护CREATOR
领域从proguard相关的混淆
添加此行到你的ProGuard配置:
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
谢谢。我将其添加到我的proguard-project.txt文件中,现在它可以工作。 –
谢谢,但这样的事情应该由谷歌记录! – Sufian
嗯,他们在defualt proguard设置中添加了这样的东西:ANDROID_SDK \ tools \ proguard \ proguard-android.txt ...因此,如果您以正常方式使用带有gradle的proguard,则不应再担心这一点我的意思是'proguardFiles getDefaultProguardFile('proguard-android.txt'),your_specific_files_go_here.pro' – Selvin
proguard的他妈的了CREATOR领域类的......你必须“告知”不要在你的课堂上写下这个档案 – Selvin
我该怎么做? –
'-keep class *实现android.os.Parcelable public static final android.os.Parcelable $ Creator *; }' – Selvin