عدم همخوانی ورودی های subscribeOn و observeOn در ورزن جدید koin

پرسیده شده
فعالیت 1006 روز پیش
دیده شده 504 بار
0

با سلام و قت بخیر

در کلاس MainViewModel با توجه به فیلم باید io.reactivex.schedulers.Schedulers  را import کنیم. اما با توجه به اینکه مجبور به استفاده از koin v3 هستم از من به عنوان ورودی subscribeOn و observeOn نوعی از rx.schedulers  میگیرد. حال اگر import rx.schedulers.Schedulers  را استفاده کنیم برای ورودی observeOn  دچار مشکل میشویم  نمتوانیم ترد main را پیدا کنیم.(تصاویر الصاق شده اند)

همین طور برای subscribe  هم مشکل ساز است. چه باید کرد؟

 

آیا مشکل پیش امده به دلیل تغییر ورژن در Koin است یا خیر؟

اگر koin v2 را استفاده کنم با اینکه در gradle اطلاعات مشابه با اطلاعات فایل نایک است ولی تداخل manifest پیش می آید. بنابر این مجبور شدم kion 3 را استفاده کنم و minSdk را از 17 به 21 تغییر دهم.مشابه کد زیر

 

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"

    defaultConfig {
        applicationId "ir.kargar.karamad"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
فایل پیوست
observe.zip
430.64 KB

1
حذف شده

سلاو و احترام

 

من فکر میکنم شما دارید از rxjava ورژن ۳ استفاده میکنید.

پس اگر چنین هست ورژن رو به ۲ تغییر بدید.

implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'io.reactivex.rxjava2:rxjava:2.x.x'

و ایمپورت هاتون هم باید چنین باشند 

import io.reactivex.SingleObserver
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers

و به صورت کامل تر خواهد شد

import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import com.sevenlearn.nikestore.common.NikeViewModel
import com.sevenlearn.nikestore.data.Product
import com.sevenlearn.nikestore.data.repo.ProductRepository
import io.reactivex.SingleObserver
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
import timber.log.Timber

 

فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

4 مرداد 00

حذف شده
متشکر. تمام موارد import شده تا اینجای کار مشابه شما قرار دادم و تصاویر جدید را ارسال کردم. البته امکان ویرایش متن و فایلی ارسالی نبد در پاسخ سوالات ارسال کردم. لطف بفرمایید بررسی کنید.
حذف شده
البته حتما باید از AndroidSchedulers استفاده بشه چون بیاد بتونه با ترد مربوط به UI ارتباط برقرار کنه. اما متاسفانه ورودی ها را misMatch میزنه
حذف شده
خدا را شکر مشل حل شد. دقیقا از ApiService تا آخر اشتباه کرده بودم. Signal و Completable از کتابخانه io.reactivex باید استفاده میشد نه rxjava. چن همه از هم ارث برده بودند مشکل این شد که دیدیم.
0
حذف شده

سلام وقت بخیر

به نظرم لایبرری RxJava تون مشکل داره باید از ورژن ۲ استفاده کنید

توی اسکرین شات دومتون هم باید از AndroidSchedulers.mainThread استفاده کنید

نکته بعدی هم اینکه توی ورژن ۳ لایبرری koin وابستگی هایی که باید به بخش dependencies اضافه کنید فرق میکنه با ورژن ۲ وابستگی های زیر رو اضافه کنید

def koin_version= "3.1.2"
implementation "io.insert-koin:koin-core:$koin_version"
implementation "io.insert-koin:koin-android:$koin_version"

در نهایت یک اسکرین شات از بخش لایبرری هایی که استفاده کردین هم بدین

فایل پیوست

میلاد عزیززاده گلنگشی

توسط

میلاد عزیززاده گلنگشی

4 مرداد 00

حذف شده
سپاس. اما از ورژن 2 rxjava استفاده میکنم. dependency ها هم مطابق ورژن 3 koin از سایت مربوطه کپی کردم مشکلی نداره. برای ارسال تصویر در این سوال دیگه امکان ارسال عکس نیست. فقط عنوان قابل ویرایش هست. ارسال متن در اینجا هم قابل فرمت بندی نیست. الان با توجه به مطالب شما implementation "io.insert-koin:koin-core:$koin_version" را هم اضافه کردم تغییری نکرد. در پاسخ بعدی 2 تصویر جدید را اضافه کردم که شاید به رفع مشکل کمک کند.
حذف شده
که البته در سایت https://insert-koin.io/docs/setup/v3/ این برای kotline هست . من depencency های اندرید را اضافه کرده بودم. کدام درست تر هست. (البته با وجود اضافه کردند همه این dependency های Kotlin و android مشکل همچنان وجود داره)
حذف شده
وابستگی زیر برای قابلیت های پایه لایبرری koin هست یعنی همون dependency injection implementation "io.insert-koin:koin-core:$koin_version" وابستگی زیر هم برای قابلیت هایی هست که در اندروید وجود داره مثل استفاده از koin برای view model injection implementation "io.insert-koin:koin-android:$koin_version"
0
حذف شده

تصاویر بیشتر مربوط به خطا

فایل پیوست
observe.zip
928.45 KB

راضیه کارگر شورکی

توسط

راضیه کارگر شورکی

4 مرداد 00

0
حذف شده

خدا را شکر مشل حل شد. دقیقا از ApiService تا آخر اشتباه کرده بودم. Signal و Completable از کتابخانه io.reactivex  باید استفاده میشد نه rxjava. چون همه interface ها و class ها از هم ارث برده بودند مشکل این شد که دیدیم.

فایل پیوست

راضیه کارگر شورکی

توسط

راضیه کارگر شورکی

4 مرداد 00

حذف شده
موفق باشید من داشتم این جلسه رو از اول پیاده سازی میکردم با ورژن 3 koin ببینم برای منم همچین مشکلی پیش میاد یا ن خوشحالم مشکلتون حل شد :)
حذف شده
به پکیج هایی که ایپورت میکنید حواستون باشه مشکلی براتون پیش نمیاد
حذف شده
خوشحالم مشکلتون حل شده,در اکثر سوالات این چنینی مشکل از ایمپورت و یا لایبرری های اضافه شده بوده که طبق اون شما رو راهنمایی کردم موفق باشید
پوریا شفیعی

4 مرداد 00

حذف شده
از وقتی که گذاشتید سپاسگذارم