我似乎无法让Proguard使用RxAndroid v1.1.0库.
以前我一直在使用v1.0.1,这适用于以下规则.
-dontwarn rx.internal.util.unsafe.**
但是在升级到rxAndroid的v1.1.0并且还包括在Github ReadMe.txt上说的RxJava之后,每当我在代码中使用RxAndroid时,我都会遇到此异常.
Caused by: java.lang.NoSuchFieldException: producerIndex
所以我添加了更多Proguard规则,就像人们在Github的一些问题报告中所说的那样.
-keep class rx.schedulers.Schedulers { public static; } -keep class rx.schedulers.ImmediateScheduler { public ; } -keep class rx.schedulers.TestScheduler { public ; } -keep class rx.schedulers.Schedulers { public static ** test(); } -keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* { long producerIndex; long consumerIndex; } -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef { long producerNode; long consumerNode; } -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; } -dontwarn rx.internal.util.unsafe.**
这不起作用,我在生成发布版本时不断遇到崩溃.任何想法,因为我想使用最新的库.
我在proguard文件中添加以下代码.
-keepclassmembers class rx.internal.util.unsafe.** { long producerIndex; long consumerIndex; }