Кажется, я не могу заставить Proguard работать с библиотекой RxAndroid v1.1.0.
Раньше я использовал версию 1.0.1, и она отлично работала со следующим правилом.
-dontwarn rx.internal.util.unsafe.**
Однако после обновления rxAndroid до версии 1.1.0, а также включения RxJava, как указано в Github ReadMe.txt, я получаю это исключение всякий раз, когда использую 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.**
Это не работает, и я постоянно получаю сбои при создании сборок выпуска. Любая идея, как я хотел бы использовать последние библиотеки.