无法使用 RxJava 作为依赖项和 proguard-rules 创建发布版本
Unable to create release-build with RxJava as dependency and proguard-rules
我在依赖项中使用 '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'
但我仍然在顶部提到同样的问题。
不知道是什么ProGuard规则解决了这个问题,但如果没有必要使用1.3.1
,你现在可以使用旧版本1.3.0
。版本 1.3.1
仅包含少量更改,并且 1.3.0
使用这些 ProGuard 规则可以正常工作。
这是 1.3.1 中的一个错误,已在 1.3.2 版本中修复PR。
尝试在混淆文件中添加这条规则
-dontwarn java.util.concurrent.**
我在依赖项中使用 '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'
但我仍然在顶部提到同样的问题。
不知道是什么ProGuard规则解决了这个问题,但如果没有必要使用1.3.1
,你现在可以使用旧版本1.3.0
。版本 1.3.1
仅包含少量更改,并且 1.3.0
使用这些 ProGuard 规则可以正常工作。
这是 1.3.1 中的一个错误,已在 1.3.2 版本中修复PR。
尝试在混淆文件中添加这条规则
-dontwarn java.util.concurrent.**