当前位置:  开发笔记 > Android > 正文

Proguard和RxAndroid V1.1.0

如何解决《Proguard和RxAndroidV1.1.0》经验,为你挑选了1个好方法。

我似乎无法让Proguard使用RxAndroid v1.1.0库.

以前我一直在使用v1.0.1,这适用于以下规则.

-dontwarn rx.internal.util.unsafe.**

但是在升级到rxAndroid的v1.1.0并且还包括在Github ReadMe.txt上说的RxJava之后,每当我在代码中使用RxAndroid时,我都会遇到此异常.

Caused by: java.lang.NoSuchFieldException: producerIndex

所以我添加了更多Proguard规则,就像人们在Github的一些问题报告中所说的那样.

-keep class rx.schedulers.Schedulers {
    public static ;
}
-keep class rx.schedulers.ImmediateScheduler {
    public ;
}
-keep class rx.schedulers.TestScheduler {
    public ;
}
-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.**

这不起作用,我在生成发布版本时不断遇到崩溃.任何想法,因为我想使用最新的库.



1> 小智..:

我在proguard文件中添加以下代码.

-keepclassmembers class rx.internal.util.unsafe.** {
    long producerIndex;
    long consumerIndex;
}

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有