ak
03/04/2021, 6:00 PMbeta01
compiler error when using the latest Koin 3.0.1-alpha-6
, and injecting a viewmodel instance via getViewModel()
in your @Composable function?
(further stacktrace in thread)Internal error: Couldn't inline method call 'getViewModel'
ak
03/04/2021, 6:01 PMCaused by: org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Couldn't inline method call 'getViewModel' into
@androidx.compose.material.ExperimentalMaterialApi @android.annotation.SuppressLint @androidx.compose.runtime.Composable public fun StationDetailScreen(stationName: kotlin.String?, stationId: kotlin.Long?, latitude: kotlin.String?, longitude: kotlin.String?, distanceTo: kotlin.Float?, navHostController: androidx.navigation.NavHostController, `$composer`: androidx.compose.runtime.Composer?, `$changed`: <http://kotlin.Int|kotlin.Int>): kotlin.Unit defined in com.Autolean.puregas.ui.stationDetail
<no source>
Cause: getViewModel (Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)Landroidx/lifecycle/ViewModel;:
@Landroidx/compose/runtime/Composable;() // invisible
escodro
03/04/2021, 6:03 PMak
03/04/2021, 6:05 PMak
03/04/2021, 6:15 PM/**
* Resolve ViewModel instance
*
* @param qualifier
* @param parameters
*
* @author Arnaud Giuliani
*/
@Composable
inline fun <reified T : ViewModel> getViewModel(
qualifier: Qualifier? = null,
noinline parameters: ParametersDefinition? = null,
): T {
val owner = AmbientViewModelStoreOwner.current
return remember {
owner.getViewModel(qualifier, parameters = parameters)
}
}
and added the needed compiler flag:
"-Xallow-unstable-dependencies"
and im g2gArtyom Zhukov
03/06/2021, 1:05 PM