美文网首页
Android使用Eventbus遇到的混淆问题

Android使用Eventbus遇到的混淆问题

作者: Git小助手 | 来源:发表于2016-03-29 13:42 被阅读4971次

问题描述:

打开混淆,release一个包。

在使用Eventbus和注解的Android项目中,通过反射机制调用绑定的方法时,出现一下错误:

java.lang.reflect.InvocationTargetException

InvocationTargetException异常由Method.invoke(obj, args...)方法抛出。当被调用的方法的内部抛出了异常而没有被捕获时,将由此异常接收

问题分析:

通过Store获取的数据有问题,总是出现NullPointerException,但是实际网络返回是OK的,具体Action执行也可以可以的,那估计就是数据混淆有问题,项目中所有的数据Model都使用Serializable序列化了。

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference

解决方法:

在混淆文件proguard.conf中,添加一下代码:

-keepnames class * implements java.io.Serializable

-keepclassmembers class * implements java.io.Serializable {

static final long serialVersionUID;

private static final java.io.ObjectStreamField[] serialPersistentFields;

!static !transient ;

private void writeObject(java.io.ObjectOutputStream);

private void readObject(java.io.ObjectInputStream);

java.lang.Object writeReplace();

java.lang.Object readResolve();

}

如果数据是使用Parcelable:

-keep class * implements android.os.Parcelable {

public static final android.os.Parcelable$Creator *;

}

其他有关注解混淆的配置:

-keepattributes *Annotation*

-keepclassmembers class * {@com.xxx.Subscribe ;}

-keepclassmembers class * {@com.xxx.Action ;}

相关文章

网友评论

      本文标题:Android使用Eventbus遇到的混淆问题

      本文链接:https://www.haomeiwen.com/subject/mlbxkttx.html