Я получаю эту ошибку в комнате: < /p>
Fatal Exception: java.util.NoSuchElementException
Key 1855838 is missing in the map.
kotlin.collections.MapsKt__MapWithDefaultKt.getOrImplicitDefaultNullable (MapWithDefault.kt:24)
kotlin.collections.MapsKt__MapsKt.getValue (Maps.kt:370)
android.persistence.phonelines.ConnectedUserDao_Impl.getFullConnectedUsersFlowByOrderNr$lambda$6 (ConnectedUserDao_Impl.kt:342)
android.persistence.phonelines.ConnectedUserDao_Impl.$r8$lambda$43VE92PoOM1yQT3OPmuzeuKB5FM
android.persistence.phonelines.ConnectedUserDao_Impl$$ExternalSyntheticLambda2.invoke (D8$$SyntheticClass)
androidx.room.util.DBUtil__DBUtil_androidKt$performSuspending$lambda$1$$inlined$internalPerform$1.invokeSuspend (DBUtil.kt:68)
< /code>
Это мой полный объект: < /p>
data class FullConnectedUser(
@Embedded
val user: ConnectedUser,
@Relation(
parentColumn = "phoneLineOid",
entityColumn = "oid"
)
private val _phoneLines: List,
@Relation(
parentColumn = "associatedAddressableOid",
entityColumn = "oid"
)
private val _addressables: List
)
< /code>
my connectuser: < /p>
@Entity(tableName = "connected_users")
data class ConnectedUser(
@PrimaryKey
val oid: String,
val phoneLineOid: String,
val associatedAddressableOid: String,
val isIncoming: Boolean,
val isOutgoing: Boolean,
val editable: String,
val orderNumber: Int
)
< /code>
my phoneline: < /p>
@Entity(tableName = "phone_lines")
data class PhoneLine(
// Phone line OID
@PrimaryKey
val oid: String,
val associatedAddressableOid: String,
val userPhoneLineOid: String,
val commonName: String,
val externalNumber: String,
val callerName: String,
val unreadRecentContactsCount: Int,
val fetchedUntil: String
)
< /code>
он сбои в последней строке здесь: < /p>
_tmpUser = ConnectedUser(_tmpOid,_tmpPhoneLineOid,_tmpAssociatedAddressableOid,_tmpIsIncoming,_tmpIsOutgoing,_tmpEditable,_tmpOrderNumber)
val _tmpPhoneLinesCollection: MutableList
val _tmpKey_2: String
_tmpKey_2 = _stmt.getText(_columnIndexOfPhoneLineOid)
_tmpPhoneLinesCollection = _collectionPhoneLines.getValue(_tmpKey_2)
< /code>
Я предполагаю, потому что они извлекаются отдельно: < /p>
viewModel.viewModelScope.launch(coroutineExceptionHandler) {
kotlin.runCatching { viewModel.fetchPhoneLines() }
kotlin.runCatching { viewModel.fetchConnectedUsers() }
}
< /code>
Как я могу это избежать?
Примечание Я могу реплицироваться проще, если я открываю фрагмент и быстро нажимаю, потому что в моем сочинении у меня есть: < /p>
val connectedUsersListState: List by viewModel.getFullConnectedUsersFlowByOrderNr().collectAsState(initial = emptyList())
< /code>
, который делает: < /p>
@Query("SELECT * FROM connected_users ORDER BY orderNumber")
fun getFullConnectedUsersFlowByOrderNr(): Flow
Подробнее здесь: https://stackoverflow.com/questions/797 ... in-the-map