当使用仅在发布时使用RxJava的库时,应用程序崩溃



我在我的应用程序中使用了这个库——这个库本身使用RxJava,它在Debug APK中运行得很好。当Proguard模糊处理被禁用时,它甚至可以在Release上工作。但当我选择图像后启用Proguard时,它就停止工作了!

这是日志:

08-02 22:54:11.848:E/AndroidRuntime(17818):致命异常:main08-02 22:54:11.848:E/AndroidRuntime(17818):进程:com.domus.safariar.domus,PID:17818 08-02 22:54:11.848:E/AndroidRuntime(17818):java.lang.InternalError 08-02 22:54:11.848:E/AndroidRuntime(17818):在rx.internal.util.ansafe.UnsafeAccess.addressOf(未知源:14)08-02 22:54:11.848:E/AndroidRuntime(17818):在rx.internal.util.ansafe.SpscArrayQueueProducerFields。(未知来源:4)08-02 22:54:11.848:E/AndroidRuntime(17818):atrx.internal.operator.OperatorObserveOn$ObserveOnSubscriber。(未知来源:50)08-02 22:54:11.848:E/AndroidRuntime(17818):atrx.internal.operator.OperatorObserveOn.call(未知来源:22)08-0222:54:11.848:E/AndroidRuntime(17818):在rx.internal.operator.OperatorObserveOn.call(未知来源:2)08-0222:54:11.848:E/AndroidRuntime(17818):在rx。可观测$2.调用(未知来源:8)08-02 22:54:11.848:E/AndroidRuntime(17818):在rx。可观测$2.call(未知来源:2)08-02 22:54:11.848:E/AndroidRuntime(17818):在rx。Observable.subscribe(未知来源:43)08-02 22:54:11.848:E/AndroidRuntime(17818):在rx。Observable.subscribe(未知源:0)08-02 22:54:11.848:E/AndroidRuntime(17818):在com.zfdang.multiple_images_selector.ImagesSelectorActivity.LoadFolderAndImages(未知来源:36)08-02 22:54:11.848:E/AndroidRuntime(17818):atcom.zfdang.multiple_images_selector.ImagesSelectorActivity.onRequestPermissionsResult(未知来源:48)08-02 22:54:11.848:E/AndroidRuntime(17818):atandroid.app.Activity.dispatchRequestPermissionsResult(Activity.java:7429)08-02 22:54:11.848:E/AndroidRuntime(17818):在android.app.Activity.dispatchActivityResult(Activity.java:7280)08-0222:54:11.848:E/AndroidRuntime(17818):在android.app.ActivityThread.vdeliveryResults(ActivityThreads.java:4264)08-02 22:54:11.848:E/AndroidRuntime(17818):在android.app.ActivityThread.handleSendResult(ActivityThreads.java:4312)08-02 22:54:11.848:E/AndroidRuntime(17818):在android.app.ActivityThread.-wrap19(未知来源:0)08-0222:54:11.848:E/AndroidRuntime(17818):在android.app.ActivityThread$H.handleMessage(ActivityThreads.java:1644)08-02 22:54:11.848:E/AndroidRuntime(17818):在android.os.Handler.dispatchMessage(Handler.java:106)08-0222:54:11.848:E/AndroidRuntime(17818):在android.os.Looper.loop(Looper.java:164)08-02 22:54:11.848:E/AndroidRuntime(17818):在android.app.ActivityThread.main(ActivityThreads.java:6494)08-0222:54:11.848:E/AndroidRuntime(17818):在java.lang.reflect.Method.ioke(本机方法)08-02 22:54:11.848:E/AndroidRuntime(17818):在com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)08-02 22:54:11.848:E/AndroidRuntime(17818):在com.android.internal.os.ZygoteInit.main(ZygoteNit.java:807)08-0222:54:11.848:E/AndroidRuntime(17818):由以下原因引起:java.lang.NoSuchFieldException:类中没有字段生产者索引Lrx/internal/util/ansafe/SpscArrayQueueProducerFields;("rx.internal.util.ansafe.SpscArrayQueueProducerFields"出现在/data/app/com.domus.safariar.domus-P04AN9pLul9iY1dryJ3vXg===/base.apk!classes3.dex)08-02 22:54:11.848:E/AndroidRuntime(17818):在java.lang.Class.getDeclaredField(本机方法)08-02 22:54:11.848:E/AndroidRuntime(17818):在rx.internal.util.ansafe.UnsafeAccess.addressOf(未知源:0)08-0222:54:11.848:E/AndroidRuntime(17818):。。。22更多08-0222:54:11.849:E/UncaughtException(17818):java.lang.InternalError08-02 22:54:11.849:E/未捕获异常(17818):在rx.internal.util.ansafe.UnsafeAccess.addressOf(未知源:14)08-02 22:54:11.849:E/未捕获异常(17818):在rx.internal.util.ansafe.SpscArrayQueueProducerFields。(未知来源:4)08-02 22:54:11.849:E/UncaughtException(17818):atrx.internal.operator.OperatorObserveOn$ObserveOnSubscriber。(未知来源:50)08-02 22:54:11.849:E/UncaughtException(17818):atrx.internal.operator.OperatorObserveOn.call(未知来源:22)08-0222:54:11.849:E/未捕获异常(17818):在rx.internal.operator.OperatorObserveOn.call(未知来源:2)08-0222:54:11.849:E/未捕获异常(17818):在rx。可观测$2.调用(未知来源:8)08-02 22:54:11.849:E/UncaughtException(17818):在rx。可观测$2.call(未知来源:2)08-02 22:54:11.849:E/未捕获异常(17818):在rx。Observable.subscribe(未知来源:43)08-02 22:54:11.849:E/UncaughtException(17818):在rx。Observable.subscribe(未知来源:0)08-02 22:54:11.849:E/UncaughtException(17818):atcom.zfdang.multiple_images_selector.ImagesSelectorActivity.LoadFolderAndImages(未知来源:36)08-02 22:54:11.849:E/UncaughtException(17818):atcom.zfdang.multiple_images_selector.ImagesSelectorActivity.onRequestPermissionsResult(未知来源:48)08-02 22:54:11.849:E/UncaughtException(17818):atandroid.app.Activity.dispatchRequestPermissionsResult(Activity.java:7429)08-02 22:54:11.849:E/未捕获异常(17818):在android.app.Activity.dispatchActivityResult(Activity.java:7280)08-0222:54:11.849:E/未捕获异常(17818):在android.app.ActivityThread.vdeliveryResults(ActivityThreads.java:4264)08-02 22:54:11.849:E/未捕获异常(17818):在android.app.ActivityThread.handleSendResult(ActivityThreads.java:4312)08-02 22:54:11.849:E/未捕获异常(17818):在android.app.ActivityThread.-wrap19(未知来源:0)08-0222:54:11.849:E/未捕获异常(17818):在android.app.ActivityThread$H.handleMessage(ActivityThreads.java:1644)08-02 22:54:11.849:E/未捕获异常(17818):在android.os.Handler.dispatchMessage(Handler.java:106)08-0222:54:11.849:E/未捕获异常(17818):在android.os.Looper.loop(Looper.java:164)08-02 22:54:11.849:E/UncaughtException(17818):位于android.app.ActivityThread.main(ActivityThreads.java:6494)08-0222:54:11.849:E/未捕获异常(17818):在java.lang.reflect.Method.ioke(本机方法)08-02 22:54:11.849:E/UncaughtException(17818):位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)08-02 22:54:11.849:E/未捕获异常(17818):在com.android.internal.os.ZygoteInit.main(ZygoteNit.java:807)08-0222:54:11.849:E/未捕获异常(17818):由以下原因引起:java.lang.NoSuchFieldException:类中没有字段生产者索引Lrx/internal/util/ansafe/SpscArrayQueueProducerFields;("rx.internal.util.ansafe.SpscArrayQueueProducerFields"出现在/data/app/com.domus.safariar.domus-P04AN9pLul9iY1dryJ3vXg===/base.apk!classes3.dex)08-02 22:54:11.849:E/未捕获异常(17818):在java.lang.Class.getDeclaredField(本机方法)08-02 22:54:11.849:E/UncaughtException(17818):位于rx.internal.util.ansafe.UnsafeAccess.addressOf(未知源:0)08-0222:54:11.849:E/未捕获异常(17818):。。。再增加22个

我试图添加一些Proguard规则以避免崩溃,但它不起作用:

-keep class * {
public private *;
}
-keep class com.facebook.** { *; }
-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;
}
-keep class com.zfdang.multiple_images_selector.ImagesSelectorActivity**{*;}
-keep class com.zfdang.multiple_images_selector.ImagesSelectorActivity$**{*;}
-dontwarn com.zfdang.multiple_images_selector.ImagesSelectorActivity**{*;}
-keep com.zfdang.multiple_images_selector.ImagesSelectorActivity.LoadFolderAndImages**{*;}
-dontwarn com.zfdang.multiple_images_selector.ImagesSelectorActivity.LoadFolderAndImages**{*;}
-keep class rx.internal.operators.OperatorObserveOn**{*;}
-dontwarn rx.internal.operators.OperatorObserveOn.**
-dontwarn sun.misc.** 
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
long producerIndex; 
long consumerIndex; 
} 
-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; 
} 
-dontnote rx.internal.util.PlatformDependent 

请尝试将缺少的行添加到您的proguard规则中。

最新更新