В свойстве lateinit Singleton packageInfoData не инициализированоAndroid

Форум для тех, кто программирует под Android
Anonymous
В свойстве lateinit Singleton packageInfoData не инициализировано

Сообщение Anonymous »

Я разработчик Android.
Я хочу использовать 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
}
}
Вот как я использую setPackageInfoData:

Код: Выделить всё

@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)
Я точно знаю, что все пользователи выполняют код setPackageInfoData, а если нет, то они не использовали getPackageInfoData.
А также я не могу воспроизвести этот сбой на своей стороне .
Что может привести к этому сбою, у вас есть идеи?

Подробнее здесь: https://stackoverflow.com/questions/791 ... nitialized

Вернуться в «Android»