[英]ClassCastException in Espresso test with Dagger 2 after upgrading to Android Gradle 2.2.0 plugin
Since updating to the Android 2.2.0 Gradle plugin, my Espresso tests have started failing with the following error: 自从更新到Android 2.2.0 Gradle插件后,我的Espresso测试开始失败,出现以下错误:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp.app.debug/com.myapp.app.conversation.ConversationActivity}: java.lang.ClassCastException: com.myapp.app.conversation.data.SqlMessageStore cannot be cast to com.myapp.app.auth.UserScopedAccountStore
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.ClassCastException: com.myapp.app.conversation.data.SqlMessageStore cannot be cast to com.myapp.app.auth.UserScopedAccountStore
at com.myapp.app.di.module.UserModule_UserScopedAccountStoreFactory.get(UserModule_UserScopedAccountStoreFactory.java:30)
at com.myapp.app.di.module.UserModule_UserScopedAccountStoreFactory.get(UserModule_UserScopedAccountStoreFactory.java:10)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.myapp.app.di.module.UserModule_TokenInterceptorFactory.get(UserModule_TokenInterceptorFactory.java:30)
at com.myapp.app.di.module.UserModule_TokenInterceptorFactory.get(UserModule_TokenInterceptorFactory.java:10)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.myapp.app.di.module.UserModule_AuthedOkHttpClientFactory.get(UserModule_AuthedOkHttpClientFactory.java:30)
at com.myapp.app.di.module.UserModule_AuthedOkHttpClientFactory.get(UserModule_AuthedOkHttpClientFactory.java:10)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.myapp.app.di.module.UserModule_HipChatClientFactory.get(UserModule_HipChatClientFactory.java:81)
at com.myapp.app.di.module.UserModule_HipChatClientFactory.get(UserModule_HipChatClientFactory.java:17)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.myapp.app.di.module.UserModule_LogoutFactory.get(UserModule_LogoutFactory.java:29)
at com.myapp.app.di.module.UserModule_LogoutFactory.get(UserModule_LogoutFactory.java:10)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.myapp.app.di.module.UserModule_SignedInPresenterFactory.get(UserModule_SignedInPresenterFactory.java:69)
at com.myapp.app.di.module.UserModule_SignedInPresenterFactory.get(UserModule_SignedInPresenterFactory.java:16)
at com.myapp.app.BaseSignedInActivity_MembersInjector.injectPresenter(BaseSignedInActivity_MembersInjector.java:44)
at com.myapp.app.conversation.ConversationActivity_MembersInjector.injectMembers(ConversationActivity_MembersInjector.java:40)
at com.myapp.app.conversation.ConversationActivity_MembersInjector.injectMembers(ConversationActivity_MembersInjector.java:9)
at com.myapp.app.di.DaggerUserComponent.inject(DaggerUserComponent.java:993)
at com.myapp.app.conversation.ConversationActivity.inject(ConversationActivity.java:149)
at com.myapp.app.BaseSignedInActivity.onCreate(BaseSignedInActivity.java:59)
at com.myapp.app.conversation.ConversationActivity.onCreate(ConversationActivity.java:57)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.support.test.runner.MonitoringInstrumentation.callActivityOnCreate(MonitoringInstrumentation.java:532)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
... 10 more
Running the app works completely fine. 运行应用程序完全正常。 Changing this back to the Android 2.1.3 Gradle plugin fixes the espresso problems (with no other changes).
将此更改回Android 2.1.3 Gradle插件可修复espresso问题(无其他更改)。 I've attempted cleaning, rebuilding, and restarting the gradle daemon to no avail.
我试图清理,重建和重新启动gradle守护程序无济于事。 I also tried updating to 2.2.1 and bumping to the latest Dagger 2 version (2.7).
我也尝试更新到2.2.1并碰到最新的Dagger 2版本(2.7)。
Is it possible you have duplicate dependencies? 您是否可能有重复的依赖项? Try using
compileOnly
instead of compile
for test dependencies. 尝试使用
compileOnly
而不是compile
来测试依赖项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.