android10 / Android-CleanArchitecture-Kotlin

This is a movies sample app in Kotlin, which is part of a serie of blog posts I have written about architecting android application using different approaches.
https://fernandocejas.com/2018/05/07/architecting-android-reloaded/
4.64k stars 921 forks source link

RUN migration-to-hilt Crash ? #103

Open lwns opened 3 years ago

lwns commented 3 years ago

Process: com.fernandocejas.sample.dev.debug, PID: 8024 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fernandocejas.sample.dev.debug/com.fernandocejas.sample.features.movies.MoviesActivity}: java.lang.RuntimeException: Cannot create an instance of class com.fernandocejas.sample.features.movies.MoviesViewModel at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) Caused by: java.lang.RuntimeException: Cannot create an instance of class com.fernandocejas.sample.features.movies.MoviesViewModel at androidx.lifecycle.ViewModelProvider$NewInstanceFactory.create(ViewModelProvider.java:221) at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:278) at androidx.lifecycle.SavedStateViewModelFactory.create(SavedStateViewModelFactory.java:106) at androidx.hilt.lifecycle.HiltViewModelFactory.create(HiltViewModelFactory.java:69) at androidx.lifecycle.AbstractSavedStateViewModelFactory.create(AbstractSavedStateViewModelFactory.java:69) at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:185) at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150) at androidx.lifecycle.ViewModelLazy.getValue(ViewModelProvider.kt:54) at androidx.lifecycle.ViewModelLazy.getValue(ViewModelProvider.kt:41) at com.fernandocejas.sample.features.movies.MoviesFragment.getMoviesViewModel(Unknown Source:2) at com.fernandocejas.sample.features.movies.MoviesFragment.onCreate(MoviesFragment.kt:49) at androidx.fragment.app.Fragment.performCreate(Fragment.java:2685) at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:280) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1187) at androidx.fragment.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1255) at androidx.fragment.app.FragmentTransition.calculateFragments(FragmentTransition.java:1138) at androidx.fragment.app.FragmentTransition.startTransitions(FragmentTransition.java:136) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2001) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1959) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1861) at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2641) at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2589) at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:247) at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:541) at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:210) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1334) at android.app.Activity.performStart(Activity.java:7029) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2741) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)  at android.app.ActivityThread.-wrap11(Unknown Source:0)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)  at android.os.Handler.dispatchMessage(Handler.java:106)  at android.os.Looper.loop(Looper.java:164)  at android.app.ActivityThread.main(ActivityThread.java:6494)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)  Caused by: java.lang.InstantiationException: java.lang.Class has no zero argument constructor at java.lang.Class.newInstance(Native Method) at androidx.lifecycle.ViewModelProvider$NewInstanceFactory.create(ViewModelProvider.java:219) at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:278)  at androidx.lifecycle.SavedStateViewModelFactory.create(SavedStateViewModelFactory.java:106)  at androidx.hilt.lifecycle.HiltViewModelFactory.create(HiltViewModelFactory.java:69)  at androidx.lifecycle.AbstractSavedStateViewModelFactory.create(AbstractSavedStateViewModelFactory.java:69)  at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:185)  at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150)  at androidx.lifecycle.ViewModelLazy.getValue(ViewModelProvider.kt:54)  at androidx.lifecycle.ViewModelLazy.getValue(ViewModelProvider.kt:41)  at com.fernandocejas.sample.features.movies.MoviesFragment.getMoviesViewModel(Unknown Source:2)  at com.fernandocejas.sample.features.movies.MoviesFragment.onCreate(MoviesFragment.kt:49)  at androidx.fragment.app.Fragment.performCreate(Fragment.java:2685)  at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:280)  at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1187)  at androidx.fragment.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1255)  at androidx.fragment.app.FragmentTransition.calculateFragments(FragmentTransition.java:1138)  at androidx.fragment.app.FragmentTransition.startTransitions(FragmentTransition.java:136)  at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2001)  at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1959)  at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1861)  at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2641)  at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2589)  at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:247)  at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:541)  at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:210)  at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1334)  at android.app.Activity.performStart(Activity.java:7029)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2741)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)  at android.app.ActivityThread.-wrap11(Unknown Source:0)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)  at android.os.Handler.dispatchMessage(Handler.java:106)  at android.os.Looper.loop(Looper.java:164)  at android.app.ActivityThread.main(ActivityThread.java:6494)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 

Zhuinden commented 3 years ago

Did you forget to add @AndroidEntryPoint to MoviesFragment?

Did you forget to apply the Android Dagger Hilt Plugin?