RxJava 混淆配置

转自:https://blog.csdn.net/soslinken/article/details/51375036

因为升级到了RxJava 1.1.5版本。在使用混淆时,出现了类无法找到的错误,所以怀疑是混淆配置有问题,到github上看了一下,是因为1.1.1版本中修改了部分实现,混淆后,就会报错,根据Github上的issus文件,增加如下混淆配置即可。

1
2
3
4
5
6
7
8
9
10
11
-dontwarn sun.misc.**
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
long producerIndex;
long consumerIndex;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
rx.internal.util.atomic.LinkedQueueNode producerNode;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
rx.internal.util.atomic.LinkedQueueNode consumerNode;
}

这个配置是使用 https://github.com/artem-zinnatullin/RxJavaProGuardRules 这个开源项目的,使用Android studio的同学,可以直接增加一个依赖即可。 依赖如下:

1
2
3
4
5
// RxJava itself
compile 'io.reactivex:rxjava:1.3.3'

// And ProGuard rules for RxJava!
compile 'com.artemzin.rxjava:proguard-rules:1.3.3.0'

原issus地址:https://github.com/krschultz/android-proguard-snippets/pull/112

坚持原创技术分享,您的支持是对我最大的鼓励!