简体   繁体   English

升级到Android Gradle 2.2.0插件后,使用Dagger 2进行Espresso测试中的ClassCastException

[英]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.

相关问题 升级到3.0.1 android gradle插件后,Android Espresso测试将无法运行 - Android Espresso tests won't run after upgrading to 3.0.1 android gradle plugin 升级到Android Gradle Plugin 3.2后,Gradle构建中的Findbugs失败 - Findbugs in Gradle build fails after upgrading to Android Gradle Plugin 3.2 升级到最新的 Android Gradle 插件 AndoidX 后出现 Gradle 错误 - Gradle error after upgrading to AndoidX the latest Android Gradle Plugin 升级到Android插件3.0后,Gradle构建失败 - Gradle build fails after upgrading to Android plugin 3.0 升级到Gradle 5和Android插件3.3之后,我的构建失败了“Metaspace” - After upgrading to Gradle 5 and Android Plugin 3.3, my build fails with “Metaspace” 升级到Android Gradle插件3.4.0后,类别不再变得模糊 - Class no longer obfuscated after upgrading to Android Gradle plugin 3.4.0 将 android gradle 插件从 4.2.1 升级到 7.0.1 后出现错误 - After upgrading android gradle plugin from 4.2.1 to 7.0.1 getting error 升级 Android Gradle 插件 7.1 后无法加载 class AndroidComponentsExtension - Unable to load class AndroidComponentsExtension after upgrading the Android Gradle Plugin 7.1 Android Espresso with Dagger - Android Espresso with Dagger 更新到Android Studio 2.2 / gradle插件2.2.0后:“无法获取未知属性'assembleRelease'” - After update to Android Studio 2.2 / gradle plugin 2.2.0: “could not get unknown property 'assembleRelease'”
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM