Nie mogę sprawić, że Proguard będzie pracował z biblioteką RxAndroid v1.1.0.Proguard i RxAndroid V1.1.0
Poprzednio używałem wersji 1.0.1 i działało to dobrze z następującą zasadą.
-dontwarn rx.internal.util.unsafe.**
Jednak po aktualizacji do v1.1.0 z rxAndroid a także tym RxJava jak mówi na GitHub ReadMe.txt, otrzymuję ten wyjątek, gdy używam RxAndroid w moim kodu.
Caused by: java.lang.NoSuchFieldException: producerIndex
Dodałem więc więcej reguł dotyczących gry Proguard, jak ludzie mówią w niektórych raportach na temat Githuba.
-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.**
To nie działa i ciągle dostaję awarie podczas generowania wersji. Jakikolwiek pomysł, ponieważ chciałbym skorzystać z najnowszych bibliotek.
Zobacz Artem, który utrzymuje się do tej pory: https://github.com/artem-zinnatullin/RxJavaProGuardRules – akarnokd