2016-01-15 6 views
3

У меня проблемы с RxJava (1.1.0) при использовании Proguard. Я не изменил версию RxJava и ее файл .pro, но после обновления OkHttp я не смог скомпилировать, используя Proguard, потому что у меня были предупреждения о sun.misc.Unsafe, которые не присутствуют.RxJava, Proguard и sun.misc.Unsafe

rxJava.pro

-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(); 
} 

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

После добавления в -dontwarn, то APK может быть собран, но как только я использую RxJavaRxAndroid «с AndroidSchedulers.mainThread()), он выходит из строя с этим StackTrace:

FATAL EXCEPTION: main 
Process: it.madonie, PID: 8982 
java.lang.InternalError 
at rx.d.d.b.y.a(UnsafeAccess.java:103) 
at rx.d.d.b.x.<clinit>(SpscArrayQueue.java:39) 
at rx.d.a.ag.<init>(OperatorObserveOn.java:94) 
at rx.d.a.af.a(OperatorObserveOn.java:64) 
at rx.d.a.af.call(OperatorObserveOn.java:44) 
at rx.a$2.a(Observable.java:158) 
at rx.a$2.call(Observable.java:154) 
at rx.a.a(Observable.java:8191) 
at rx.a.b(Observable.java:8158) 
at rx.a.a(Observable.java:8017) 

Не понимаю, почему UnsafeAccess рушится, он должен просто искать sun.misc.Unsafe и вернуть false, когда его нет.

ответ

5

решаемые путем добавления

compile 'com.artemzin.rxjava:proguard-rules:1.1.0.0' 

моих зависимостей.