【发布时间】:2015-12-16 15:04:45
【问题描述】:
我似乎无法让 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 <methods>;
}
-keep class rx.schedulers.ImmediateScheduler {
public <methods>;
}
-keep class rx.schedulers.TestScheduler {
public <methods>;
}
-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.**
这不起作用,当我生成发布版本时,我不断地遇到崩溃。任何想法,我想使用最新的库。
【问题讨论】:
-
查看 Artem 的最新规则集:github.com/artem-zinnatullin/RxJavaProGuardRules
标签: android rx-java rx-android