首页 > 解决方案 > @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

标签: dagger-2dagger-hilt

解决方案


正如问题跟踪器中所建议的那样。您能否将您的初始化逻辑抽象为一个基类,BaseAppCore : Application然后在您的 prod 应用程序中扩展它@HiltAndroidApp AppCore : BaseAppCore,然后为测试使 Hilt 基于您的抽象生成一个测试应用程序,@CustomTestApplication(BaseAppCore::class) interface AppCoreTestApplication. 最好将这个问题提交到https://github.com/google/dagger/issues


推荐阅读