GOOGLE ADS

Donnerstag, 14. April 2022

Kann nicht als StateFlow importiert werden

kotlinx.coroutines.flow.asStateFlowDas automatische Ausfüllen von Android Studio kann aus irgendeinem Grund nicht erkannt werden.

Geben Sie hier die Bildbeschreibung ein

Hier ist ein Ausschnitt meines Projekts build.gradle:

composeOptions {
kotlinCompilerExtensionVersion = "1.1.0-alpha02"
kotlinCompilerVersion = "1.5.21"
}
implementation "androidx.activity:activity-compose:1.3.1"
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2'

Jede Hilfe ist willkommen.


Lösung des Problems

asStateFlowist nur für MutableStateFlows und wandelt sie in schreibgeschützten StateFlow um, daher ist es sinnlos, es hier aufzurufen, da Sie ihm sofort einen weiteren Funktionsaufruf folgen lassen. Wenn Sie versuchen, einen regulären Flow in einen StateFlow umzuwandeln, müssen Sie verwenden stateIn, nicht asStateFlow. Ich denke, die einzige Verwendung für asStateFlow()besteht darin, eine öffentliche schreibgeschützte Version eines privaten MutableStateFlow zu erstellen, ohne den genauen Typ eingeben zu müssen.

Ich habe Compose noch nicht verwendet, aber nach dem, was ich kurz gelesen habe, denke ich, dass Sie collectAsStatetrotzdem direkt auf einen kalten Flow zugreifen können, sodass Sie keine Konvertierung durchführen müssen.

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...