作者:陈俊英围脖_687 | 来源:互联网 | 2023-01-27 18:14
我目前正在尝试使用InstantApps,并希望将dagger包含在我的项目中.
我在设置应用程序AppComponent时遇到了问题.我的应用程序组件包括我的应用程序的所有功能匕首模块.
我基本上有:
包含我的Application类的One Base应用程序模块
每个Activity都有一个匕首模块的多个功能,所有功能都以Base作为依赖项.
一个应用程序模块和即时模块都导入所有功能和基本应用程序模块.
我想在添加Instant App模块之前弄清楚设置.
来自InstantApps文档和项目示例.似乎Application类需要在Base中.从Dagger文档,到设置匕首:
DaggerYourAppComponent.create().inject(this);
应该包含在您的应用程序类中.但是,这似乎是不可能的,因为AppComponent需要引用所有功能匕首模块.
我的问题是:
我应该在哪里添加我的AppComponent匕首模块?
我应该将我的应用程序保存在app模块中而不是Base中吗?
使用Instant Apps围绕Dagger的任何GitHub回购或文档?
谢谢
1> Vishy..:
Instant应用程序非常支持Dagger2.您可以为每个要素模块和相应的Dagger提供程序类创建Component类,以显示每个要素模块的组件类实例.
每个模块组件类都可以为仅包含在该功能模块中的类声明注入方法.
此外,您还可以在基本模块中使用Application组件类进行应用程序范围的注入.
应用程序组件类可以在基础模块中包含的Application类中实例化,并通过应用程序类中的静态方法公开给其他功能模块.
以下是使用Instant应用程序注入Dagger2的示例代码,以使事情更加清晰.
https://github.com/willowtreeapps/android-instant-apps-demo