我使用匕首进行依赖注入,并且我不时会得到此类强制转换异常:
Caused by: java.lang.ClassCastException: android.app.Application cannot be
cast to myPackage.MyApplication
at myPackage.ui.activity.BaseActivity.injectAppComponent(BaseActivity.java:63)
at myPackage.ui.activity.BaseActivity.onCreate(BaseActivity.java:42)
这是我进行注射的基本活动方法:
protected void injectAppComponent() {
((MyApplication) getApplication()).getAppComponent().inject(this);
}
申请类
public class MyApplication extends Application {
private AppComponent appComponent;
private void injectComponent() {
appComponent = DaggerAppComponent.builder()
.appModule(new AppModule(this)).build();
appComponent.inject(this);
}
public AppComponent getAppComponent() {
return appComponent;
}
}
在我的清单中,我定义了这样的应用名称:
application
android:name="myPackage.MyApplication"
但是我仍然遇到这个问题,有没有想过为什么会这样?
答案 0 :(得分:2)
你可能还没有找到答案,但我刚遇到这个问题,我的问题是我尝试注入的类的接口是package-private 。
我将其更改为公开,一切正常。