android - 无法使用 RxJava 作为依赖项和 proguard-rules 创建发布版本

标签 android android-proguard

我在依赖项中使用 '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

我已经为 rxjava 添加了 proguard 规则,如下所示-

-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' 但我仍然在顶部提到同样的问题。

最佳答案

这是 1.3.1 中的错误,已由 PR 修复在版本 1.3.2 中。

关于android - 无法使用 RxJava 作为依赖项和 proguard-rules 创建发布版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46174338/

相关文章:

android - 我应该在我的 (android) 应用程序中直接访问 FIWARE Orion 上下文代理 API 吗?

Android Studio - 无法通知项目评估监听器错误

android - 使用proguard签名的APK会显示IncompatibleClassChangeError

android - Proguard 不会混淆 AAR 类

具有不同依赖项和相同类文件的 Android 风格

android - Apache Legacy 的 Proguard 问题(不使用该库时)

java - Android - DialogFragment 上的 CountDownTimer

java - 过度使用图像起始内存

android - 谷歌语音识别源代码

android - Multidex 项目中几个新的 Proguard 问题 Google Play 服务 v10.2.6 到 v11.0.0