Я хочу использовать Singelton с кинжалом 2, я использую Jetpack Compose.
Это мой код прямо сейчас:
Код: Выделить всё
import javax.inject.Inject
import javax.inject.Singleton
@Singleton
class PackagesDataSingleton @Inject constructor() {
private lateinit var packageInfoData: PackageInfoData
fun setPackageInfoData(packageInfoData: PackageInfoData) {
this.packageInfoData = packageInfoData
}
fun getPackageInfoData(): PackageInfoData {
return packageInfoData
}
}
Код: Выделить всё
@HiltViewModel
class SplashViewModel @Inject constructor(
private val getPackagesSim: GetPackagesSim,
private val packagesDataSingleton: PackagesDataSingleton,
) : BaseViewModel() {
private fun getPackagesSimApi() {
viewModelScope.launch(Dispatchers.IO) {
getPackagesSim().collect { result ->
when (result) {
is Resource.Success -> {
result.data?.let {
withContext(Dispatchers.IO) {
packagesDataSingleton.setPackageInfoData(it)
}
...
Код: Выделить всё
Fatal Exception: kotlin.UninitializedPropertyAccessException
lateinit property packageInfoData has not been initialized
com.pelephone.peleglobal.manager.PackagesDataSingleton.getPackageInfoData (PackagesDataSingleton.kt:16)
А также я не могу воспроизвести этот сбой на своей стороне .
Что может привести к этому сбою, у вас есть идеи?
Подробнее здесь: https://stackoverflow.com/questions/791 ... nitialized
Мобильная версия