RxJava遇到的坑

java.lang.InternalError
                                                     at rx.internal.util.unsafe.UnsafeAccess.a(UnsafeAccess.java:115)
                                                     at rx.internal.util.unsafe.MpmcArrayQueueProducerField.<clinit>(MpmcArrayQueue.java:34)
                                                     at rx.internal.util.ObjectPool.a(ObjectPool.java:154)
                                                     at rx.internal.util.ObjectPool.<init>(ObjectPool.java:58)
                                                     at rx.internal.util.ObjectPool.<init>(ObjectPool.java:37)
                                                     at rx.internal.util.RxRingBuffer$1.<init>(RxRingBuffer.java:265)
                                                     at rx.internal.util.RxRingBuffer.<clinit>(RxRingBuffer.java:265)
                                                     at rx.Observable.a(Observable.java:7673)
                                                     at me.shaohui.advancedluban.LubanCompresser.a(LubanCompresser.java:64)
                                                     at me.shaohui.advancedluban.Luban.a(Luban.java:204)
                                                     at me.shaohui.advancedluban.Luban.a(Luban.java:194)
                                                     at me.shaohui.advancedluban.Luban.a(Luban.java:152)
                                                     at com.wisdomschool.stu.utils.ImgCompressUtils.a(ImgCompressUtils.java:47)
                                                     at com.wisdomschool.stu.module.supervise.manager.SuperviseCreateManager.a(SuperviseCreateManager.java:180)
                                                     at com.wisdomschool.stu.ui.activities.SuperviseCreateActivity.onClick(SuperviseCreateActivity.java:357)
                                                     at com.wisdomschool.stu.ui.activities.SuperviseCreateActivity$$ViewInjector$3.a(SuperviseCreateActivity$$ViewInjector.java:44)
                                                     at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:22)
                                                     at android.view.View.performClick(View.java:4456)
                                                     at android.view.View$PerformClick.run(View.java:18490)
                                                     at android.os.Handler.handleCallback(Handler.java:733)
                                                     at android.os.Handler.dispatchMessage(Handler.java:95)
                                                     at android.os.Looper.loop(Looper.java:136)
                                                     at android.app.ActivityThread.main(ActivityThread.java:5094)
                                                     at java.lang.reflect.Method.invokeNative(Native Method)
                                                     at java.lang.reflect.Method.invoke(Method.java:515)
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893)
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:702)
                                                     at dalvik.system.NativeStart.main(Native Method)
                                                  Caused by: java.lang.NoSuchFieldException: producerIndex
                                                     at java.lang.Class.getDeclaredField(Class.java:596)
                                                     at rx.internal.util.unsafe.UnsafeAccess.a(UnsafeAccess.java:112)
                                                     at rx.internal.util.unsafe.MpmcArrayQueueProducerField.<clinit>(MpmcArrayQueue.java:34) 
                                                     at rx.internal.util.ObjectPool.a(ObjectPool.java:154) 
                                                     at rx.internal.util.ObjectPool.<init>(ObjectPool.java:58) 
                                                     at rx.internal.util.ObjectPool.<init>(ObjectPool.java:37) 
                                                     at rx.internal.util.RxRingBuffer$1.<init>(RxRingBuffer.java:265) 
                                                     at rx.internal.util.RxRingBuffer.<clinit>(RxRingBuffer.java:265) 
                                                     at rx.Observable.a(Observable.java:7673) 
                                                     at me.shaohui.advancedluban.LubanCompresser.a(LubanCompresser.java:64) 
                                                     at me.shaohui.advancedluban.Luban.a(Luban.java:204) 
                                                     at me.shaohui.advancedluban.Luban.a(Luban.java:194) 
                                                     at me.shaohui.advancedluban.Luban.a(Luban.java:152) 
                                                     at com.wisdomschool.stu.utils.ImgCompressUtils.a(ImgCompressUtils.java:47) 
                                                     at com.wisdomschool.stu.module.supervise.manager.SuperviseCreateManager.a(SuperviseCreateManager.java:180) 
                                                     at com.wisdomschool.stu.ui.activities.SuperviseCreateActivity.onClick(SuperviseCreateActivity.java:357) 
                                                     at com.wisdomschool.stu.ui.activities.SuperviseCreateActivity$$ViewInjector$3.a(SuperviseCreateActivity$$ViewInjector.java:44) 
                                                     at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:22) 
                                                     at android.view.View.performClick(View.java:4456) 
                                                     at android.view.View$PerformClick.run(View.java:18490) 
                                                     at android.os.Handler.handleCallback(Handler.java:733) 
                                                     at android.os.Handler.dispatchMessage(Handler.java:95) 
                                                     at android.os.Looper.loop(Looper.java:136) 
                                                     at android.app.ActivityThread.main(ActivityThread.java:5094) 
                                                     at java.lang.reflect.Method.invokeNative(Native Method) 
                                                     at java.lang.reflect.Method.invoke(Method.java:515) 
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893) 
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:702) 
                                                     at dalvik.system.NativeStart.main(Native Method) 




该错误是RxJava代码被混淆的问题 需要在混淆的时候添加
-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;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
    long producerNode;
    long consumerNode;
}
-keep class rx.schedulers.Schedulers {
    public static <methods>;
}
-keep class rx.schedulers.Schedulers {
    public static ** test();
}
-keep class rx.schedulers.ImmediateScheduler {
    public <methods>;
}
-keep class rx.schedulers.TestScheduler {
    public <methods>;
}
 
 
避免混淆即可

Rxjava 问题
java.lang.InternalError
                                                     at rx.internal.util.unsafe.UnsafeAccess.a(UnsafeAccess.java:115)
                                                     at rx.internal.util.unsafe.MpmcArrayQueueProducerField.<clinit>(MpmcArrayQueue.java:34)
                                                     at rx.internal.util.ObjectPool.a(ObjectPool.java:154)
                                                     at rx.internal.util.ObjectPool.<init>(ObjectPool.java:58)
                                                     at rx.internal.util.ObjectPool.<init>(ObjectPool.java:37)
                                                     at rx.internal.util.RxRingBuffer$1.<init>(RxRingBuffer.java:265)
                                                     at rx.internal.util.RxRingBuffer.<clinit>(RxRingBuffer.java:265)
                                                     at rx.Observable.a(Observable.java:7673)
                                                     at me.shaohui.advancedluban.LubanCompresser.a(LubanCompresser.java:64)
                                                     at me.shaohui.advancedluban.Luban.a(Luban.java:204)
                                                     at me.shaohui.advancedluban.Luban.a(Luban.java:194)
                                                     at me.shaohui.advancedluban.Luban.a(Luban.java:152)
                                                     at com.wisdomschool.stu.utils.ImgCompressUtils.a(ImgCompressUtils.java:47)
                                                     at com.wisdomschool.stu.module.supervise.manager.SuperviseCreateManager.a(SuperviseCreateManager.java:180)
                                                     at com.wisdomschool.stu.ui.activities.SuperviseCreateActivity.onClick(SuperviseCreateActivity.java:357)
                                                     at com.wisdomschool.stu.ui.activities.SuperviseCreateActivity$$ViewInjector$3.a(SuperviseCreateActivity$$ViewInjector.java:44)
                                                     at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:22)
                                                     at android.view.View.performClick(View.java:4456)
                                                     at android.view.View$PerformClick.run(View.java:18490)
                                                     at android.os.Handler.handleCallback(Handler.java:733)
                                                     at android.os.Handler.dispatchMessage(Handler.java:95)
                                                     at android.os.Looper.loop(Looper.java:136)
                                                     at android.app.ActivityThread.main(ActivityThread.java:5094)
                                                     at java.lang.reflect.Method.invokeNative(Native Method)
                                                     at java.lang.reflect.Method.invoke(Method.java:515)
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893)
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:702)
                                                     at dalvik.system.NativeStart.main(Native Method)
                                                  Caused by: java.lang.NoSuchFieldException: producerIndex
                                                     at java.lang.Class.getDeclaredField(Class.java:596)
                                                     at rx.internal.util.unsafe.UnsafeAccess.a(UnsafeAccess.java:112)
                                                     at rx.internal.util.unsafe.MpmcArrayQueueProducerField.<clinit>(MpmcArrayQueue.java:34) 
                                                     at rx.internal.util.ObjectPool.a(ObjectPool.java:154) 
                                                     at rx.internal.util.ObjectPool.<init>(ObjectPool.java:58) 
                                                     at rx.internal.util.ObjectPool.<init>(ObjectPool.java:37) 
                                                     at rx.internal.util.RxRingBuffer$1.<init>(RxRingBuffer.java:265) 
                                                     at rx.internal.util.RxRingBuffer.<clinit>(RxRingBuffer.java:265) 
                                                     at rx.Observable.a(Observable.java:7673) 
                                                     at me.shaohui.advancedluban.LubanCompresser.a(LubanCompresser.java:64) 
                                                     at me.shaohui.advancedluban.Luban.a(Luban.java:204) 
                                                     at me.shaohui.advancedluban.Luban.a(Luban.java:194) 
                                                     at me.shaohui.advancedluban.Luban.a(Luban.java:152) 
                                                     at com.wisdomschool.stu.utils.ImgCompressUtils.a(ImgCompressUtils.java:47) 
                                                     at com.wisdomschool.stu.module.supervise.manager.SuperviseCreateManager.a(SuperviseCreateManager.java:180) 
                                                     at com.wisdomschool.stu.ui.activities.SuperviseCreateActivity.onClick(SuperviseCreateActivity.java:357) 
                                                     at com.wisdomschool.stu.ui.activities.SuperviseCreateActivity$$ViewInjector$3.a(SuperviseCreateActivity$$ViewInjector.java:44) 
                                                     at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:22) 
                                                     at android.view.View.performClick(View.java:4456) 
                                                     at android.view.View$PerformClick.run(View.java:18490) 
                                                     at android.os.Handler.handleCallback(Handler.java:733) 
                                                     at android.os.Handler.dispatchMessage(Handler.java:95) 
                                                     at android.os.Looper.loop(Looper.java:136) 
                                                     at android.app.ActivityThread.main(ActivityThread.java:5094) 
                                                     at java.lang.reflect.Method.invokeNative(Native Method) 
                                                     at java.lang.reflect.Method.invoke(Method.java:515) 
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893) 
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:702) 
                                                     at dalvik.system.NativeStart.main(Native Method) 




该错误是RxJava代码呗混淆的问题 需要在混淆的时候添加
-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;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
    long producerNode;
    long consumerNode;
}
-keep class rx.schedulers.Schedulers {
    public static <methods>;
}
-keep class rx.schedulers.Schedulers {
    public static ** test();
}
-keep class rx.schedulers.ImmediateScheduler {
    public <methods>;
}
-keep class rx.schedulers.TestScheduler {
    public <methods>;
}
 
  
避免混淆即可
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值