2014-09-07 4 views
1

Я получаю следующую ошибку, когда звоню на подписку на Observable, которая была возвращена из арифметического вызова retrofit.Проблема с Android с дооснащением и RxJava

Я думаю, что это может быть проблема Proguard. После долгих поисковых запросов я не нашел никаких исправлений.

Версии используется

дооснащения используется 1.6.1

RxJava использовали 0.16.1

Позвольте мне знать, если требуется дополнительная информация.

09-06 18:38:16.882 8101-8101/co.spaceapp E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: co.spaceapp, PID: 8101 
rx.util.OnErrorNotImplementedException: retrofit.RxSupport$1 
     at rx.Observable$2.onError(Observable.java:376) 
     at rx.operators.SafeObserver._onError(SafeObserver.java:118) 
     at rx.operators.SafeObserver.onError(SafeObserver.java:94) 
     at rx.operators.SafeObserver.onNext(SafeObserver.java:106) 
     at rx.Notification.accept(Notification.java:121) 
     at rx.operators.OperationObserveOn$ObserveOn$Observation$SourceObserver$2.call(OperationObserveOn.java:117) 
     at rx.operators.OperationObserveOn$ObserveOn$Observation$SourceObserver$2.call(OperationObserveOn.java:112) 
     at rx.Scheduler$3.call(Scheduler.java:163) 
     at rx.Scheduler$3.call(Scheduler.java:159) 
     at rx.android.schedulers.HandlerThreadScheduler$1.run(HandlerThreadScheduler.java:72) 
     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:5001) 
     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:785) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
     at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NoClassDefFoundError: retrofit.RxSupport$1 
     at retrofit.RxSupport.createRequestObservable(RxSupport.java:32) 
     at retrofit.RestAdapter$RestHandler.invoke(RestAdapter.java:263) 
     at $Proxy1.getMoments(Native Method) 
     at co.spaceapp.activity.DetailSpaceActivity.getMoments(DetailSpaceActivity.java:294) 
     at co.spaceapp.activity.DetailSpaceActivity.getLatestMoments(DetailSpaceActivity.java:276) 
     at co.spaceapp.activity.DetailSpaceActivity.access$200(DetailSpaceActivity.java:81) 
     at co.spaceapp.activity.DetailSpaceActivity$2.call(DetailSpaceActivity.java:249) 
     at co.spaceapp.activity.DetailSpaceActivity$2.call(DetailSpaceActivity.java:240) 
     at rx.Observable$2.onNext(Observable.java:381) 
     at rx.operators.SafeObserver.onNext(SafeObserver.java:102) 

+0

Если вы отключите proguard, проблема исчезнет? – yogurtearl

+0

К сожалению, я не могу отключить proguard, потому что я над пределом метода без него. Однако я уже исправил проблему. – Laimiux

+0

Попробуйте "-keep class retrofit. ** {*;}" в вашей конфигурации proguard. См. Https://github.com/square/retrofit/issues/117 – yogurtearl

ответ

3

Я установил ее.

Проблема заключалась в том, что rxjava-core и rxjava-android были старыми версиями.

Изменения от:

компиляции 'com.netflix.rxjava: rxjava-ядро: 0.16.1'

компиляция 'com.netflix.rxjava: rxjava-андроид: 0.16.1'

To:

компиляцией 'com.netflix.rxjava: rxjava-ядро: 0.20.3'

compile 'com.netflix.rxjava: rxjava-android: 0.20.3'

Смежные вопросы