تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ راضیه کارگر
عدم همخوانی ورودی‌های subscribeOn و observeOn در ورزن جدید koin
جامعه جاوا (اندروید) ایجاد شده در ۰۴ مرداد ۱۴۰۰

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

در کلاس 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"
    }

سلاو و احترام

 

من فکر میکنم شما دارید از 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

 

پوریا شفیعی ۰۴ مرداد ۱۴۰۰، ۰۳:۵۴

سلام وقت بخیر

به نظرم لایبرری 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"

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

میلاد عزیززاده ۰۴ مرداد ۱۴۰۰، ۰۵:۴۳

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

راضیه کارگر ۰۴ مرداد ۱۴۰۰، ۰۷:۲۸

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

راضیه کارگر ۰۴ مرداد ۱۴۰۰، ۰۷:۵۸