java.lang.InternalError
at rx.internal.util.unsafe.UnsafeAccess.addressOf(Unknown Source)at rx.internal.util.unsafe.SpscArrayQueueProducerFields.<clinit>(Unknown Source)
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.<init>(Unknown Source)
at rx.internal.operators.OperatorObserveOn.call(Unknown Source)
at rx.internal.operators.OperatorObserveOn.call(Unknown Source)
at rx.internal.operators.OnSubscribeLift.call(Unknown Source)
at rx.internal.operators.OnSubscribeLift.call(Unknown Source)
at rx.Observable.a(Unknown Source)
at rx.Observable.subscribe(Unknown Source)
at com.ruilonglai.texas_scan.activity.LaunchActivity.updateTemplates(Unknown Source)
at com.ruilonglai.texas_scan.activity.LaunchActivity$1.run(Unknown Source)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NoSuchFieldException: producerIndex
at java.lang.Class.getDeclaredField(Class.java:890)
... 12 more
java.lang.NoSuchFieldException: producerIndex
at java.lang.Class.getDeclaredField(Class.java:890)
at rx.internal.util.unsafe.UnsafeAccess.addressOf(Unknown Source)
at rx.internal.util.unsafe.SpscArrayQueueProducerFields.<clinit>(Unknown Source)
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.<init>(Unknown Source)
at rx.internal.operators.OperatorObserveOn.call(Unknown Source)
at rx.internal.operators.OperatorObserveOn.call(Unknown Source)
at rx.internal.operators.OnSubscribeLift.call(Unknown Source)
at rx.internal.operators.OnSubscribeLift.call(Unknown Source)
at rx.Observable.a(Unknown Source)
at rx.Observable.subscribe(Unknown Source)
at com.ruilonglai.texas_scan.activity.LaunchActivity.updateTemplates(Unknown Source)
at com.ruilonglai.texas_scan.activity.LaunchActivity$1.run(Unknown Source)
at java.lang.Thread.run(Thread.java:818)
an error occured while writing file...
在debug版本下面不会出错,编译成release版本才出现
通过google查找发现在proguard-rules.pro文件添加以下配置可运行通过
-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;
}
文章参考: https://github.com/ReactiveX/RxJava/issues/3097