Closed nathanielwolf closed 9 years ago
did you explicitly add com.couchsurfing.mobile.ui.home.HomeView
to the injects of one of your modules?
Happening on mine as well. Yes, the injects SomeView is declared in one of the Screen.Modules. I can only make it work by adding the SomeView to the injects in RootModule. Sucks.
Maybe I just don't know how to use Dagger? IDK
Also, this guy has a point: http://stackoverflow.com/questions/26301133/no-inject-registered-you-must-explicitly-add-it-to-the-injects-option-in-one
Okay I solved my problem by using ObjectGraphService.inject() on my Views, the crash was caused by Utils.inject(). It was adding to the wrong object graph I guess.
This was a bug with Calligraphy, solved here https://github.com/chrisjenx/Calligraphy/issues/135
The following crash occurs on the first view inflation unless
CalligraphyConfig.Builder#disableCustomViewInflation()
is called during initialization.java.lang.RuntimeException: Unable to start activity ComponentInfo{com.couchsurfing.mobile.debug/com.couchsurfing.mobile.ui.MainActivity}: android.view.InflateException: Binary XML file line #3: Error inflating class com.couchsurfing.mobile.ui.home.HomeView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) at android.app.ActivityThread.access$800(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5001) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(NativeStart.java) Caused by: android.view.InflateException: Binary XML file line #3: Error inflating class com.couchsurfing.mobile.ui.home.HomeView at android.view.LayoutInflater.createView(LayoutInflater.java:620) at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(CalligraphyLayoutInflater.java:206) at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(CalligraphyLayoutInflater.java:20) at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:297) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689) at android.view.LayoutInflater.inflate(LayoutInflater.java:469) at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at com.couchsurfing.mobile.ui.ScreenConductor.inflateLayout(ScreenConductor.java:226) at com.couchsurfing.mobile.ui.ScreenConductor.createView(ScreenConductor.java:221) at com.couchsurfing.mobile.ui.ScreenConductor.createView(ScreenConductor.java:207) at com.couchsurfing.mobile.ui.ScreenConductor.createViewFromScreen(ScreenConductor.java:124) at com.couchsurfing.mobile.ui.ScreenConductor.showScreen(ScreenConductor.java:75) at com.couchsurfing.mobile.ui.base.BaseViewActivity.showScreen(BaseViewActivity.java:78) at com.couchsurfing.mobile.ui.base.BaseActivityPresenter.showScreen(BaseActivityPresenter.java:347) at com.couchsurfing.mobile.ui.MainActivityBlueprint$Presenter.showScreen(MainActivityBlueprint.java:158) at com.couchsurfing.mobile.ui.base.BaseActivityPresenter.onLoad(BaseActivityPresenter.java:167) at com.couchsurfing.mobile.ui.MainActivityBlueprint$Presenter.onLoad(MainActivityBlueprint.java:312) at mortar.Presenter$1.onLoad(Presenter.java:34) at mortar.RealActivityScope.doLoading(RealActivityScope.java:153) at mortar.RealActivityScope.register(RealActivityScope.java:68) at mortar.Presenter.takeView(Presenter.java:73) at com.couchsurfing.mobile.ui.base.BaseActivity.onPostCreate(BaseActivity.java:182) at com.couchsurfing.mobile.ui.MainActivity.onPostCreate(MainActivity.java:143) at android.app.Instrumentation.callActivityOnPostCreate(Instrumentation.java:1150) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2167) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) at android.app.ActivityThread.access$800(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5001) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(NativeStart.java) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.constructNative(Constructor.java) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at android.view.LayoutInflater.createView(LayoutInflater.java:594) at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(CalligraphyLayoutInflater.java:206) at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(CalligraphyLayoutInflater.java:20) at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:297) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689) at android.view.LayoutInflater.inflate(LayoutInflater.java:469) at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at com.couchsurfing.mobile.ui.ScreenConductor.inflateLayout(ScreenConductor.java:226) at com.couchsurfing.mobile.ui.ScreenConductor.createView(ScreenConductor.java:221) at com.couchsurfing.mobile.ui.ScreenConductor.createView(ScreenConductor.java:207) at com.couchsurfing.mobile.ui.ScreenConductor.createViewFromScreen(ScreenConductor.java:124) at com.couchsurfing.mobile.ui.ScreenConductor.showScreen(ScreenConductor.java:75) at com.couchsurfing.mobile.ui.base.BaseViewActivity.showScreen(BaseViewActivity.java:78) at com.couchsurfing.mobile.ui.base.BaseActivityPresenter.showScreen(BaseActivityPresenter.java:347) at com.couchsurfing.mobile.ui.MainActivityBlueprint$Presenter.showScreen(MainActivityBlueprint.java:158) at com.couchsurfing.mobile.ui.base.BaseActivityPresenter.onLoad(BaseActivityPresenter.java:167) at com.couchsurfing.mobile.ui.MainActivityBlueprint$Presenter.onLoad(MainActivityBlueprint.java:312) at mortar.Presenter$1.onLoad(Presenter.java:34) at mortar.RealActivityScope.doLoading(RealActivityScope.java:153) at mortar.RealActivityScope.register(RealActivityScope.java:68) at mortar.Presenter.takeView(Presenter.java:73) at com.couchsurfing.mobile.ui.base.BaseActivity.onPostCreate(BaseActivity.java:182) at com.couchsurfing.mobile.ui.MainActivity.onPostCreate(MainActivity.java:143) at android.app.Instrumentation.callActivityOnPostCreate(Instrumentation.java:1150) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2167) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) at android.app.ActivityThread.access$800(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5001) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(NativeStart.java) Caused by: java.lang.IllegalArgumentException: No inject registered for members/com.couchsurfing.mobile.ui.home.HomeView. You must explicitly add it to the 'injects' option in one of your modules. at dagger.ObjectGraph$DaggerObjectGraph.getInjectableTypeBinding(ObjectGraph.java:302) at dagger.ObjectGraph$DaggerObjectGraph.inject(ObjectGraph.java:279) at mortar.Mortar.inject(Mortar.java:93) at com.couchsurfing.mobile.ui.home.HomeView.(HomeView.java:25)
at java.lang.reflect.Constructor.constructNative(Constructor.java)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at android.view.LayoutInflater.createView(LayoutInflater.java:594)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(CalligraphyLayoutInflater.java:206)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(CalligraphyLayoutInflater.java:20)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:297)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
at android.view.LayoutInflater.inflate(LayoutInflater.java:469)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at com.couchsurfing.mobile.ui.ScreenConductor.inflateLayout(ScreenConductor.java:226)
at com.couchsurfing.mobile.ui.ScreenConductor.createView(ScreenConductor.java:221)
at com.couchsurfing.mobile.ui.ScreenConductor.createView(ScreenConductor.java:207)
at com.couchsurfing.mobile.ui.ScreenConductor.createViewFromScreen(ScreenConductor.java:124)
at com.couchsurfing.mobile.ui.ScreenConductor.showScreen(ScreenConductor.java:75)
at com.couchsurfing.mobile.ui.base.BaseViewActivity.showScreen(BaseViewActivity.java:78)
at com.couchsurfing.mobile.ui.base.BaseActivityPresenter.showScreen(BaseActivityPresenter.java:347)
at com.couchsurfing.mobile.ui.MainActivityBlueprint$Presenter.showScreen(MainActivityBlueprint.java:158)
at com.couchsurfing.mobile.ui.base.BaseActivityPresenter.onLoad(BaseActivityPresenter.java:167)
at com.couchsurfing.mobile.ui.MainActivityBlueprint$Presenter.onLoad(MainActivityBlueprint.java:312)
at mortar.Presenter$1.onLoad(Presenter.java:34)
at mortar.RealActivityScope.doLoading(RealActivityScope.java:153)
at mortar.RealActivityScope.register(RealActivityScope.java:68)
at mortar.Presenter.takeView(Presenter.java:73)
at com.couchsurfing.mobile.ui.base.BaseActivity.onPostCreate(BaseActivity.java:182)
at com.couchsurfing.mobile.ui.MainActivity.onPostCreate(MainActivity.java:143)
at android.app.Instrumentation.callActivityOnPostCreate(Instrumentation.java:1150)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2167)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(NativeStart.java)