Non riesco a far funzionare Proguard con la libreria v1.1.0 di RxAndroid.Proguard e RxAndroid V1.1.0
In precedenza ho utilizzato v1.0.1 e questo ha funzionato correttamente con la seguente regola.
-dontwarn rx.internal.util.unsafe.**
Tuttavia dopo l'aggiornamento a v1.1.0 di rxAndroid e anche compreso RxJava come si dice sul Github ReadMe.txt, ottengo questa eccezione ogni volta che uso RxAndroid nel mio codice.
Caused by: java.lang.NoSuchFieldException: producerIndex
Così ho aggiunto più regole Proguard come le persone hanno detto in alcuni dei report di problemi sul 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.**
Questo non funziona e continuo a causare arresti anomali durante la generazione dei build di rilascio. Qualche idea come vorrei usare le ultime librerie.
Sede di Artem, che è sempre aggiornato: https://github.com/artem-zinnatullin/RxJavaProGuardRules – akarnokd