代码之家  ›  专栏  ›  技术社区  ›  kevz

无法使用RxJava作为依赖项和proguard规则创建发布版本

  •  3
  • kevz  · 技术社区  · 8 年前

    我正在使用 'compile 'io.reactivex:rxjava:1.3.1' 在依存关系中

    我已启用 minifyEnabled true

    但我的错误率越来越低-

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

    -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;
    }
    

    我也试过了 compile 'com.artemzin.rxjava:proguard-rules:1.3.1.0'

    3 回复  |  直到 8 年前
        1
  •  2
  •   Ulrik Bech Hald    8 年前

    这是1.3.1中的一个错误,并由此修复 PR

        2
  •  1
  •   Lukas Novak    8 年前

    1.3.1 ,您可以使用旧版本 1.3.0 现在。版本 1.3.0 有了这些ProGuard规则就可以了。

        3
  •  1
  •   Vladimir Petrovski    8 年前

    -dontwarn java.util.concurrent.**