@Subcomponent
public interface BaseActivityInjector extends AndroidInjector<BaseActivity> {
@Subcomponent.Builder
abstract class Builder extends AndroidInjector.Builder<BaseActivity> {}
}
@Module(
includes = {
AppModule.class,
AndroidSupportInjectionModule.class,
InitializerModule.class},
subcomponents = {
BaseActivityInjector.class
})
public abstract class AppInjectionModule {
@Binds
@IntoMap
@ActivityKey(BaseActivity.class)
abstract AndroidInjector.Factory<? extends Activity> bindBaseActivityInjectorFactory(BaseActivityInjector.Builder builder);
}
@Module
public class InitializerModule {
@Provides
public InputProvider getInputProvider() {
return new InputProviderImpl();
}
}
public abstract class BaseActivity extends FragmentActivity {
@Inject
InputProvider inputProvider;
protected void onCreate(Bundle savedInstanceState) {
AndroidInjection.inject(this);
}
}
无法启动活动ComponentInfo{com.app.mobile.android.dev/com.app.mobile.android.splashscreen}:java.lang.IllegalArgumentException:没有为类绑定的注入器工厂。注入器工厂被绑定为com.delta.mobile.android.splashScreen:[com.app.mobile.android.uikit.view.baseActivity]的超类型。你的意思是为亚型绑定注射器工厂吗?
错误日志通过SplashScreen指向BaseActivity中的AndroidInjection.inject(this);
。
AndroidInjection
按类型查找活动的正确组件。如果您尝试注入splashscreen
,但它找不到为splashscreen
注册的组件,那么它将抛出异常。
如果您只想注入baseactivity
,而不是子级,那么就不能使用Androidinject
。您必须自己创建组件,并以这种方式注入活动。
或者,您不能扩展BaseActivity,也不能为每个活动声明一个组件,并按照预期使用AndroidInjection。如果您注入子活动,它也将注入父活动中的字段。
我只是开始尝试在我非常简单的项目上使用Hilt。现在它都是在Dagger2上,但我想迁移到Hilt。 我有一个活动: 和下面这样的基本活动: 或者(就像我用匕首那样): 另外,我只是一个初学者,所以,也许我错过了什么。我将继续搜索:) 感谢您的时间和回答:) java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“Android.content.pm.Appli
如何在扩展Activity而不是AppCompatActivity的类中注入改装实例?这是模块: 这是我的主要活动: 这导致 用@AndroidEntryPoint注释的活动必须是 androidx.activity.ComponentActivity 的子类。(例如 FragmentActivity、AppCompatActivity 等)[剑柄]处理未完成。有关详细信息,请参阅上面的错误。 我
我正在为导航构建一个基本活动,并希望有一些灵活的活动,这样活动就可以向基本活动指定要膨胀的布局。 有没有更好的方法实现这一点?也许用一个内容框架设置一个基本布局,然后膨胀到那个? 如有任何建议,将不胜感激。
我的问题是,是否有某种方法可以基于活动的spring配置文件或其他方法来有条件地提供依赖关系?
有谁能帮我..我想根据我的URL在我的菜单上添加一个活动类 这是密码 可能的URL 所以,我需要的是当URL是http://www.whatever.com/?tag=automotive,big-data时,我想再添加一个类,比如active。 示例: HTML:
问题内容: 我在一个Android项目中使用ORMLite,并且我不想使用扩展活动,因为我是在AsyncTask上将值插入数据库中。 在文档中说: “如果您不想扩展和其他基类,那么您将需要复制它们的功能。您需要在代码的开头进行调用,保存帮助程序并根据需要使用它,然后在你完成了。” 它还说要在中添加数据库帮助程序类。所以我不确定我在做什么错。 我正在使用一个为我的数据层调用的类,如下所示: 我正在使