Unable to create release-build with RxJava as dependency and proguard-rules

Viewed 840

I'm using 'compile 'io.reactivex:rxjava:1.3.1' in dependencies

I have enabled minifyEnabled true to obfuscate the code.

But I'm getting below error-

Warning:rx.internal.schedulers.NewThreadWorker: can't find referenced method 'java.util.concurrent.ConcurrentHashMap$KeySetView keySet()' in library class java.util.concurrent.ConcurrentHashMap

I have added proguard rules for rxjava as below-

-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.** {
    long producerIndex;
    long consumerIndex;
}

I have also tried compile 'com.artemzin.rxjava:proguard-rules:1.3.1.0' but still I'm getting same issue mention at top.

3 Answers

Try adding this rule in your proguard file

-dontwarn java.util.concurrent.**
Related