मैं निम्नलिखित RETROFIT एपीआई है:RETROFIT पोस्ट क्षेत्र वस्तु
@POST("/payments")
Observable<Response> saveCreditCard(@Body CreditCard creditCard)
CreditCard
एक RealmObject
है।
जब मैं अपने एपीआई विधि का उपयोग करने का प्रयास करें:
CreditCard card = realm.createObject(CreditCard.class);
card.setWhateverField(...);
...
mApi.saveCreditCard(card)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(...);
मैं निम्नलिखित त्रुटि मिलती है:
> retrofit.RetrofitError: com.fasterxml.jackson.databind.JsonMappingException: Realm access from incorrect thread. Realm objects can only be accessed on the thread they where created.
System.err﹕ at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:400)
System.err﹕ at retrofit.RestAdapter$RestHandler.access$100(RestAdapter.java:220)
System.err﹕ at retrofit.RestAdapter$RestHandler$1.invoke(RestAdapter.java:265)
System.err﹕ at retrofit.RxSupport$2.run(RxSupport.java:55)
System.err﹕ at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237)
System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
System.err﹕ at retrofit.Platform$Android$2$1.run(Platform.java:142)
System.err﹕ at java.lang.Thread.run(Thread.java:818)
System.err﹕ Caused by: java.lang.AssertionError: com.fasterxml.jackson.databind.JsonMappingException: Realm access from incorrect thread. Realm objects can only be accessed on the thread they where created.
मुझे लगता है कि RETROFIT io()
अनुसूचक पर JSON
को क्रमबद्धता कर रही है यह सोचते हैं हूँ इसलिए, त्रुटि।
क्या किसी के पास कोई सुझाव है कि मैं रीयलम की थ्रेडिंग समस्या को कैसे दूर कर सकता हूं?
लगता है कि आपके पास रीयलम के लिए मॉडल और रेट्रोफिट के लिए दूसरा मॉडल होना चाहिए और कक्षाओं को एक दूसरे से "कन्वर्ट" करने के लिए कक्षा है। – Divers
हमारे पास 50 से अधिक मॉडल हैं, इसलिए यह वास्तव में एक समाधान नहीं है। –
मैं समझता हूं, लेकिन बड़ा मौका यह है कि यह केवल समाधान है। – Divers