Android Dagger2 JUnit生成的TestComponent类在TestClass中无法识别/识别

Android Dagger2 JUnit生成的TestComponent类在TestClass中无法识别/识别,android,junit4,dagger-2,Android,Junit4,Dagger 2,这里有点介绍 项目有核心和应用组件 一些实用程序类放在核心组件中,以简化其他模块中的JUnit测试 匕首用于所有模块 这是项目结构 core ___src ______main _________com.core ____________CoreComponent ______test _________com.core.test ____________SomeMockData ___build/generated/source/kapt ______coreDebug

这里有点介绍

  • 项目有
    核心
    应用
    组件
  • 一些实用程序类放在
    核心
    组件中,以简化其他模块中的JUnit测试
  • 匕首用于所有模块
这是项目结构

core
 ___src
 ______main
 _________com.core
 ____________CoreComponent
 ______test
 _________com.core.test
 ____________SomeMockData

 ___build/generated/source/kapt
 ______coreDebug
 _________com.core
 ____________DaggerCoreComponent

app
 ___src
 ______main
 _________com.foo
 ____________AwesomeComponent
 ____________ConcreteClassA
 ______test
 _________com.foo
 ____________TestAweseomeComponent
 ____________MyJUnitTest

 ___build/generated/source/kapt
 ______appDebug
 _________com.foo
 ____________DaggerAwesomeComponent
 ______appDebugUnitTest
 _________com.foo
 ____________DaggerTestAwesomeComponent

在app
build.gradle
中,添加了内核作为主要依赖项和测试依赖项

implementation project(':core')
testImplementation project(':core')
Dagger2-为codegen添加,并成功生成DaggerTestComponent

testImplementation dagger.xx  
kaptTest daggerProcessor.xx
这里有两个问题

  • app/test
    源中无法访问放置在
    core/test
    中的
    SomeMockData
    (不过IDE没有显示任何错误)。运行
    myjunitest
    时抛出错误

  • 生成的
    DaggerTestAwesomeComponent
    未检测到
    TestAwesomeComponent
    DaggerTestAwesomeComponent
    myjunitest
    中不可见。正如我们所知,生成的
    DaggerAwesomeComponent
    工作正常

  • 注意:为了简单起见,我省略了injector类,
    myjunitest\u MembersInjector也会生成。因为我在测试类中有@Inject


    我也有同样的问题。已尝试使缓存无效/重新启动,清理生成的代码并运行assembleAndroidTest、AssembledBugUnitTest。此外,无法在“测试”部分解析ImmutableMap和CanIgnoreReturnValue类。在代码部分,一切正常。提供了kaptTest依赖项。此线程注意到测试仍然有效。在我的例子中,测试即使有错误也能工作。我也有同样的问题。已尝试使缓存无效/重新启动,清理生成的代码并运行assembleAndroidTest、AssembledBugUnitTest。此外,无法在“测试”部分解析ImmutableMap和CanIgnoreReturnValue类。在代码部分,一切正常。提供了kaptTest依赖项。此线程注意到测试仍然有效。在我的例子中,测试即使有错误也能工作。