hi all. I'm initializing two `ViewModel`s however ...
# compose-android
a
hi all. I'm initializing two `ViewModel`s however my app crashes with error (see 🧵) - anyone else encountered this issue?
solved 1
Copy code
java.lang.RuntimeException: Cannot create an instance of class  viewmodel
MainActivity.kt:
Copy code
val viewModelOne: ViewModelOne = viewModel()
                    val viewModelTwo: ViewModelTwo = viewModel()

                    Places.initialize(this, BuildConfig.PLACES_API_KEY)
                    val placesClient = Places.createClient(this)

                    Screen(
                        modifier = Modifier,
                        context = this,
                        canNavigateBack = true,
                        viewModelOne = viewModelOne,
                        viewModel = viewModelTwo,
                        placesClient = placesClient,
                        country = "US"
                    )
where
Screen
is:
Copy code
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun Screen(
    modifier: Modifier = Modifier,
    context: Context,
    canNavigateBack: Boolean,
    viewModelOne: ViewModelOne,
    viewModelTwo: ViewModelTwo,
    placesClient: PlacesClient,
    country: String  /** ISO 3166-1 Alpha-2 */
) {
my ViewModels are in the following manner:
ViewModelOne
Copy code
class ViewModelOne(
    <a bunch of private val>
) : ViewModel()
ViewModelTwo
Copy code
class ViewModelTwo : ViewModel() {
s
Your viewmodel have no default empty constructor. You need to create viewmodel factory, more details here https://developer.android.com/topic/libraries/architecture/viewmodel/viewmodel-factories
thank you color 1