我有一个简单的类扩展ResultReceiver,用于在服务和某些活动之间进行通信:
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.os.ResultReceiver;
@SuppressLint("ParcelCreator")
public class DataSyncResultReceiver extends ResultReceiver {
private Receiver mReceiver;
public DataSyncResultReceiver(Receiver receiver, Handler handler) {
super(handler);
setReceiver(receiver);
}
public interface Receiver {
void onReceiveResult(int resultCode, Bundle resultData);
}
public void setReceiver(Receiver receiver) {
mReceiver = receiver;
}
public boolean hasReceiver() {
return mReceiver != null;
}
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
if (mReceiver == null) {
Log.e("DataSyncResultReceiver", "Receiver is null");
} else {
mReceiver.onReceiveResult(resultCode, resultData);
}
}
}如果不对minifyEnabled true使用pro卫士,它的工作非常好,但是如果我使用它,则在启动后会发生以下崩溃:
android.os.BadParcelableException: Parcelable协议需要一个名为DataSyncResultReceiver类上的创建者的Parcelable.Creator对象
我尝试了以下保护规则,但没有成功:
-keep class **$$Parcelable { *; }
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}有人能帮我这个忙吗?
发布于 2016-09-12 18:19:17
通过添加固定
-keep public class * extends android.support.v4.os.ResultReceiverhttps://stackoverflow.com/questions/39452685
复制相似问题