В свойстве 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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