dagger-2 - @CustomTestApplication 值不能用 @HiltAndroidApp 注释
问题描述
如果应用程序有一个自定义应用程序对象。需要用 @HiltAndroidApp 注释它 例如:@HiltAndroidApp class AppCore: Application
Appcore 有一些应用程序运行所需的初始化逻辑
现在在 Instrumentation 测试中,我们还需要扩展自定义 Application 对象。@CustomTestApplication(AppCore::class) 接口 HiltTestApplication
这给出了一个错误 @CustomTestApplication value cannot be annotated with @HiltAndroidApp
是否有任何其他方法可以在带有自定义应用程序对象的仪器测试中使用 HILT
public abstract interface HiltTestApplication {
^
@CustomTestApplication value cannot be annotated with @HiltAndroidApp. Found: AppCore
解决方案
正如问题跟踪器中所建议的那样。您能否将您的初始化逻辑抽象为一个基类,BaseAppCore : Application
然后在您的 prod 应用程序中扩展它@HiltAndroidApp AppCore : BaseAppCore
,然后为测试使 Hilt 基于您的抽象生成一个测试应用程序,@CustomTestApplication(BaseAppCore::class) interface AppCoreTestApplication
. 最好将这个问题提交到https://github.com/google/dagger/issues
推荐阅读
- reactjs - 按值反应排序列表,然后按字母顺序
- plugins - Typo3 LMS/flogin 插件是否有未记录的说明
- c++ - 跨平台问题或 QtConcurrent :: run 的替代方案是什么?
- php - 如何在测试中的 API 调用之间重置 Laravel AuthManager/guards?
- hybris - 如何仅获取 Hybris 中某个类别的直接类别?
- javascript - 如何在下拉指示器旁边添加清晰的指示器
- android - 在 Android 上的支持操作栏中编辑后退指示器边距?
- java - Ignite Cache - 将 Externalizable 对象作为二进制文件存储在服务器上
- delphi - FMX调试无法绑定地址,地址已经在使用中
- reactjs - 在 Nextjs 中使用 useEffect 和 useState