Koin: ViewModel

Created on 12 May 2019  路  18Comments  路  Source: InsertKoinIO/koin

Koin project used and used version : koin-core version '2.0.0-GA'

Describe the bug

It seem like koin 2.0.x currently does not support viewmodel in androidx (alpha or beta or even stable version 1.0.2) appcompat and viewmodel . Project compile ok but we always receive error No defition of viewmodel found. (same setup works fine with Koin version 1.0.2). Can we have a branch that support the viewmodel on androidx so that we can use Koin 2.0?

P/s We have include the koin-androidx-viewmodel dependency

question check issue

Most helpful comment

Thanks. works like a charm. i forgot to put modules() when migrate from 1.0 to 2.0. can close the issue.

All 18 comments

How do you declare your viewModel?

bellow is how i declare viewmodel

import org.koin.androidx.viewmodel.ext.koin.viewModel
import org.koin.dsl.module.module

val featureHomeModule = module {
    factory { GetTopUsersUseCase(get()) }
    viewModel { HomeViewModel(get(), get()) }
}

It works with koin 1.0.2

But in koin 2.0.x
I have tried import
import org.koin.androidx.viewmodel.dsl.viewModel
import org.koin.dsl.module

with same viewmodel declaration as above
Project compile ok but when run there is error 'No definition of viewmodel found`

can you update to 2.0.0-GA2?

I may be seeing something similar.

Dependency:
implementation "org.koin:koin-androidx-viewmodel:2.0.0-GA"

In my Activity:
import org.koin.androidx.viewmodel.ext.android.viewModel
val aboutViewModel: AboutViewModel by viewModel()

In my ViewModel:
viewModel { AboutViewModel() }

This fails with a compiler error on the by viewModel():
AboutActivity.kt: (37, 43): Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: public inline fun <reified T : ViewModel> LifecycleOwner.viewModel(qualifier: Qualifier? = ..., noinline parameters: ParametersDefinition? /* = (() -> DefinitionParameters)? */ = ...): Lazy<AboutViewModel> defined in org.koin.androidx.viewmodel.ext.android

My activity ultimately extends androidx.appcompat.app.AppCompatActivity. My ViewModel extends androidx.lifecycle.ViewModel.

I have update to latest 2.0.0-GA.

Project compile ok

but here is the error when run

2019-05-14 01:11:24.410 4746-4746/? E/AndroidRuntime: FATAL EXCEPTION: main Process: io.philippeboisney.archapp, PID: 4746 java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:503) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)聽 Caused by: org.koin.core.error.NoBeanDefFoundException: No definition found for 'io.philippeboisney.home.HomeViewModel' has been found. Check your module definitions. at org.koin.core.Koin.prepareResolution(Koin.kt:117) at org.koin.core.Koin.resolve(Koin.kt:107) at org.koin.core.Koin.get(Koin.kt:97) at org.koin.android.viewmodel.ViewModelResolutionKt$createViewModelProvider$1.create(ViewModelResolution.kt:44) at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:164) at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:130) at org.koin.android.viewmodel.ViewModelResolutionKt.getInstance(ViewModelResolution.kt:24) at org.koin.android.viewmodel.ViewModelResolutionKt.getViewModel(ViewModelResolution.kt:15) at io.philippeboisney.home.HomeFragment$$special$$inlined$viewModel$1.invoke(LifecycleOwnerExt.kt:108) at io.philippeboisney.home.HomeFragment$$special$$inlined$viewModel$1.invoke(Unknown Source:0) at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) at io.philippeboisney.home.HomeFragment.getViewModel(Unknown Source:7) at io.philippeboisney.home.HomeFragment.onCreateView(HomeFragment.kt:30) at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2612) at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:874) at androidx.fragment.app.FragmentManagerImpl.addAddedFragments(FragmentManagerImpl.java:2087) at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1861) at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1817) at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1717) at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2650) at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManagerImpl.java:2600) at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2639) at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:897) at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1228) at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1293) at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2646) at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManagerImpl.java:2600) at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:246) at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:542) at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:201) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1391) at android.app.Activity.performStart(Activity.java:7157) at android.app.ActivityThread.handleStartActivity(ActivityThread.java:2937) at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180) at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) 2019-05-14 01:11:24.410 4746-4746/? E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6669)

My Viewmodel definition

```class HomeViewModel(
val getTopUsersUseCase: GetTopUsersUseCase,
val dispatchers: AppDispatchers
) : BaseViewModel() {

// FOR DATA
private val _users = MediatorLiveData<Resource<List<User>>>()
val users: LiveData<Resource<List<User>>> get() = _users
private var usersSource: LiveData<Resource<List<User>>> = MutableLiveData()

init {
    getUsers(false)
}

// PUBLIC ACTIONS ---
fun userClicksOnItem(user: User) =
    navigate(HomeFragmentDirections.actionHomeFragmentToDetailFragment(user.login))

//            navigate(HomeFragmentDirections.actionHomeFragmentToDetailImageFragment("https://testimage.png"))

// navigate(DetailImageFragmentDirections.actionGlobalToDetailImageFragment("https://testImg"))
fun userRefreshesItems() =
getUsers(true)

// ---

private fun getUsers(forceRefresh: Boolean) = viewModelScope.launch(dispatchers.main) {
    // We make sure there is only one source of livedata (allowing us properly refresh)
    _users.removeSource(usersSource)
    withContext(dispatchers.io) { usersSource = getTopUsersUseCase(forceRefresh = forceRefresh) }
    _users.addSource(usersSource) {
        _users.value = it
        if (it.status == Resource.Status.ERROR) _snackbarError.value = Event(R.string.an_error_happened)
    }
}

}```

Do your components are listed in the logs?

No there is no components listed in the logs.

Bellow is the complete log when run

2019-05-14 15:37:06.649 8980-8980/? I/boisney.archap: Not late-enabling -Xcheck:jni (already on)
2019-05-14 15:37:06.814 8980-8980/? W/boisney.archap: Unexpected CPU variant for X86 using defaults: x86
2019-05-14 15:37:08.550 8980-8980/io.philippeboisney.archapp W/boisney.archap: Accessing hidden method Landroid/view/View;->getAccessibilityDelegate()Landroid/view/View$AccessibilityDelegate; (light greylist, linking)
2019-05-14 15:37:08.701 8980-8980/io.philippeboisney.archapp W/boisney.archap: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (light greylist, reflection)
2019-05-14 15:37:08.704 8980-8980/io.philippeboisney.archapp W/boisney.archap: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (light greylist, reflection)
2019-05-14 15:37:09.368 8980-8980/? W/boisney.archap: Accessing hidden method Landroid/graphics/FontFamily;-><init>()V (light greylist, reflection)
2019-05-14 15:37:09.368 8980-8980/? W/boisney.archap: Accessing hidden method Landroid/graphics/FontFamily;->addFontFromAssetManager(Landroid/content/res/AssetManager;Ljava/lang/String;IZIII[Landroid/graphics/fonts/FontVariationAxis;)Z (light greylist, reflection)
2019-05-14 15:37:09.368 8980-8980/? W/boisney.archap: Accessing hidden method Landroid/graphics/FontFamily;->addFontFromBuffer(Ljava/nio/ByteBuffer;I[Landroid/graphics/fonts/FontVariationAxis;II)Z (light greylist, reflection)
2019-05-14 15:37:09.368 8980-8980/? W/boisney.archap: Accessing hidden method Landroid/graphics/FontFamily;->freeze()Z (light greylist, reflection)
2019-05-14 15:37:09.368 8980-8980/? W/boisney.archap: Accessing hidden method Landroid/graphics/FontFamily;->abortCreation()V (light greylist, reflection)
2019-05-14 15:37:09.368 8980-8980/? W/boisney.archap: Accessing hidden method Landroid/graphics/Typeface;->createFromFamiliesWithDefault([Landroid/graphics/FontFamily;Ljava/lang/String;II)Landroid/graphics/Typeface; (light greylist, reflection)
2019-05-14 15:37:09.442 8980-8980/? D/AndroidRuntime: Shutting down VM
2019-05-14 15:37:09.447 8980-8980/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: io.philippeboisney.archapp, PID: 8980
    java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:503)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)聽
     Caused by: org.koin.core.error.NoBeanDefFoundException: No definition found for 'io.philippeboisney.home.HomeViewModel' has been found. Check your module definitions.
        at org.koin.core.Koin.prepareResolution(Koin.kt:117)
        at org.koin.core.Koin.resolve(Koin.kt:107)
        at org.koin.core.Koin.get(Koin.kt:97)
        at org.koin.android.viewmodel.ViewModelResolutionKt$createViewModelProvider$1.create(ViewModelResolution.kt:44)
        at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:164)
        at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:130)
        at org.koin.android.viewmodel.ViewModelResolutionKt.getInstance(ViewModelResolution.kt:24)
        at org.koin.android.viewmodel.ViewModelResolutionKt.getViewModel(ViewModelResolution.kt:15)
        at io.philippeboisney.home.HomeFragment$$special$$inlined$viewModel$1.invoke(LifecycleOwnerExt.kt:108)
        at io.philippeboisney.home.HomeFragment$$special$$inlined$viewModel$1.invoke(Unknown Source:0)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at io.philippeboisney.home.HomeFragment.getViewModel(Unknown Source:7)
        at io.philippeboisney.home.HomeFragment.onCreateView(HomeFragment.kt:30)
        at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2612)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:874)
        at androidx.fragment.app.FragmentManagerImpl.addAddedFragments(FragmentManagerImpl.java:2087)
        at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1861)
        at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1817)
        at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1717)
        at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2650)
        at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManagerImpl.java:2600)
        at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2639)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:897)
        at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1228)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1293)
        at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2646)
        at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManagerImpl.java:2600)
        at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:246)
        at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:542)
        at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:201)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1391)
        at android.app.Activity.performStart(Activity.java:7157)
        at android.app.ActivityThread.handleStartActivity(ActivityThread.java:2937)
        at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
        at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
2019-05-14 15:37:09.447 8980-8980/? E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:6669)
            ... 3 more
2019-05-14 15:37:09.462 8980-8980/? I/Process: Sending signal. PID: 8980 SIG: 9

same here with 2.0.0-GA4

Be sure to see your definitions in the logs. (think to use androidLogger() or printLogger'() at start). If you don't have your definition from here, it's quite weird :/

The DSL import for viewModel keyword is org.koin.androidx.viewmodel.dsl.viewModel

Could you have a Github sample project to help?

koin-androidx-viewmodel depends on androidx.lifecycle:lifecycle-extensions:2.0.0-rc01. What do you use?

Hi i used these 2

val lifecycleViewModel = "androidx.lifecycle:lifecycle-viewmodel-ktx:${Versions.lifecycle}"
    val lifecycleExtensions = "androidx.lifecycle:lifecycle-extensions:${Versions.lifecycle}"

with val lifecycle = "2.2.0-alpha01"

and

// KOIN
    val koin = "org.koin:koin-android:${Versions.koin}"
    val koinViewModel = "org.koin:koin-androidx-viewmodel:${Versions.koin}"

with val koin = "2.0.0-rc-3"

Here is the log when run


05/17 23:21:18: Launching app
$ adb install-multiple -r -t /Users/victory1908/Downloads/Sample/ArchApp/app/build/intermediates/resources/instant-run/debug/resources-debug.apk /Users/victory1908/Downloads/Sample/ArchApp/app/build/intermediates/split-apk/debug/dep/dependencies.apk /Users/victory1908/Downloads/Sample/ArchApp/app/build/intermediates/split-apk/debug/slices/slice_0.apk /Users/victory1908/Downloads/Sample/ArchApp/app/build/intermediates/split-apk/debug/slices/slice_2.apk /Users/victory1908/Downloads/Sample/ArchApp/app/build/intermediates/split-apk/debug/slices/slice_1.apk /Users/victory1908/Downloads/Sample/ArchApp/app/build/intermediates/split-apk/debug/slices/slice_4.apk /Users/victory1908/Downloads/Sample/ArchApp/app/build/intermediates/split-apk/debug/slices/slice_5.apk /Users/victory1908/Downloads/Sample/ArchApp/app/build/intermediates/split-apk/debug/slices/slice_3.apk /Users/victory1908/Downloads/Sample/ArchApp/app/build/intermediates/split-apk/debug/slices/slice_6.apk /Users/victory1908/Downloads/Sample/ArchApp/app/build/intermediates/split-apk/debug/slices/slice_8.apk /Users/victory1908/Downloads/Sample/ArchApp/app/build/intermediates/split-apk/debug/slices/slice_7.apk /Users/victory1908/Downloads/Sample/ArchApp/app/build/intermediates/split-apk/debug/slices/slice_9.apk /Users/victory1908/Downloads/Sample/ArchApp/app/build/intermediates/instant-run-apk/debug/app-debug.apk 
Split APKs installed in 2 s 741 ms
$ adb shell am start -n "io.philippeboisney.archapp/io.philippeboisney.archapp.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Client not ready yet..Waiting for process to come online
Connected to process 857 on device emulator-5554
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
W/boisney.archap: JIT profile information will not be recorded: profile file does not exits.
I/chatty: uid=10094(io.philippeboisney.archapp) identical 10 lines
W/boisney.archap: JIT profile information will not be recorded: profile file does not exits.
I/InstantRun: starting instant run server: is main process
I/[Koin]: [init] declare Android Context
I/[Koin]: bind type:'android.content.Context' ~ [type:Single,class:'android.content.Context']
I/[Koin]: bind type:'android.app.Application' ~ [type:Single,class:'android.app.Application']
W/boisney.archap: Accessing hidden method Landroid/view/View;->getAccessibilityDelegate()Landroid/view/View$AccessibilityDelegate; (light greylist, linking)
W/boisney.archap: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (light greylist, reflection)
    Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (light greylist, reflection)
W/boisney.archap: Accessing hidden method Landroid/graphics/FontFamily;-><init>()V (light greylist, reflection)
    Accessing hidden method Landroid/graphics/FontFamily;->addFontFromAssetManager(Landroid/content/res/AssetManager;Ljava/lang/String;IZIII[Landroid/graphics/fonts/FontVariationAxis;)Z (light greylist, reflection)
    Accessing hidden method Landroid/graphics/FontFamily;->addFontFromBuffer(Ljava/nio/ByteBuffer;I[Landroid/graphics/fonts/FontVariationAxis;II)Z (light greylist, reflection)
    Accessing hidden method Landroid/graphics/FontFamily;->freeze()Z (light greylist, reflection)
    Accessing hidden method Landroid/graphics/FontFamily;->abortCreation()V (light greylist, reflection)
    Accessing hidden method Landroid/graphics/Typeface;->createFromFamiliesWithDefault([Landroid/graphics/FontFamily;Ljava/lang/String;II)Landroid/graphics/Typeface; (light greylist, reflection)
I/boisney.archap: Background concurrent copying GC freed 6945(2MB) AllocSpace objects, 1(20KB) LOS objects, 50% free, 1666KB/3MB, paused 1.350ms total 145.292ms
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: io.philippeboisney.archapp, PID: 857
    java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:503)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)聽
     Caused by: org.koin.core.error.NoBeanDefFoundException: No definition found for 'io.philippeboisney.home.HomeViewModel' has been found. Check your module definitions.
        at org.koin.core.Koin.prepareResolution(Koin.kt:117)
        at org.koin.core.Koin.resolve(Koin.kt:107)
        at org.koin.core.Koin.get(Koin.kt:97)
        at org.koin.androidx.viewmodel.ViewModelResolutionKt$createViewModelProvider$1.create(ViewModelResolution.kt:48)
        at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:164)
        at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:130)
        at org.koin.androidx.viewmodel.ViewModelResolutionKt.getInstance(ViewModelResolution.kt:27)
        at org.koin.androidx.viewmodel.ViewModelResolutionKt.getViewModel(ViewModelResolution.kt:18)
        at io.philippeboisney.home.HomeFragment$$special$$inlined$viewModel$1.invoke(LifecycleOwnerExt.kt:104)
        at io.philippeboisney.home.HomeFragment$$special$$inlined$viewModel$1.invoke(Unknown Source:0)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at io.philippeboisney.home.HomeFragment.getViewModel(Unknown Source:25)
        at io.philippeboisney.home.HomeFragment.onCreateView(HomeFragment.kt:27)
        at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2629)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:874)
        at androidx.fragment.app.FragmentManagerImpl.addAddedFragments(FragmentManagerImpl.java:2087)
        at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1861)
        at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1817)
        at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1717)
        at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2650)
        at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManagerImpl.java:2600)
        at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2656)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:897)
        at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1228)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1293)
        at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2646)
        at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManagerImpl.java:2600)
        at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:246)
        at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:542)
        at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:201)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1391)
        at android.app.Activity.performStart(Activity.java:7157)
        at android.app.ActivityThread.handleStartActivity(ActivityThread.java:2937)
        at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
        at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
            ... 3 more
I/Process: Sending signal. PID: 857 SIG: 9
Application terminated.

Bellow is link to repo (folk from sample and updated koin dependency to 2.0)

https://github.com/victory1908/VicArchApp

try to go with lifecycle extensions 2.0.0 and koin 2.0.0-GA6

Same error with lifecycle extensions 2.0.0 and koin 2.0.0-GA6

Link to sample repo is here.

https://github.com/victory1908/VicArchApp

Is there something wrong with the definition

let me check that

NoBeanDefFoundException - you are not starting/loading any module with this definition. Your App.kt file should look more something like:

startKoin {
            androidLogger()
            androidContext(this@App)
            // load modules here
            modules(provideComponent())
        }

the modules() function was missing, and then you don't load anything

Thanks. works like a charm. i forgot to put modules() when migrate from 1.0 to 2.0. can close the issue.

nice

Was this page helpful?
0 / 5 - 0 ratings

Related issues

AHarazim picture AHarazim  路  3Comments

leodeleon22 picture leodeleon22  路  4Comments

pchmielowski picture pchmielowski  路  3Comments

caleb-allen picture caleb-allen  路  4Comments

luna-vulpo picture luna-vulpo  路  4Comments