با سلام و قت بخیر
در کلاس 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 ها از هم ارث برده بودند مشکل این شد که دیدیم.