由于自动生成的文件中出现“找不到符号”编译错误,无法在 Android Studio 和 ObjectBox 中进行覆盖率测试

nep*_*epa 6 unit-testing code-coverage android-studio objectbox objectbox-android

我正在使用 Android studio 4.1.1、ObjectBox 3.0.1 和 Kotlin 1.5.10。

当我点击测试类上的运行按钮或 run时,测试运行良好./gradlew :app-core:test,但是当我单击Run X with coverage测试运行时,我会看到

Project Is out of Date: Project class files are out of date. Would you like to recompile? The refusal to do it will result in incomplete coverage information
Run Code Online (Sandbox Code Playgroud)

如果我单击Cancel后台的覆盖率报告就会消失(因此我无法读取覆盖率信息,而且编辑器中的代码行左侧也没有覆盖率信息)。

如果我单击OK编译开始,我会在 ObjectBox 生成的文件中收到编译错误SomeEntityCursor

Error:(14, 49) java: cannot find symbol
  symbol: class SomeEntity
Run Code Online (Sandbox Code Playgroud)

其他生成的类中也会发生同样的情况(请参阅下面的详细信息)。但底线是生成的代码似乎无法看到我的实体类。值得注意的是:生成的代码与实体类位于同一模块中。

仅供参考,SomeEntity看起来就像这样:

@Entity
data class SomeEntity(@Id var id: Long = 0, ...)
Run Code Online (Sandbox Code Playgroud)

奇怪的是,有时它能够编译,但如果我之前编译的话肯定不行Clean project

这是完整的输出(对于示例包名称与日志中的包名称之间的不一致,我深表歉意,我希望它没有任何区别!):

Information:Kotlin: kotlinc-jvm 1.4.32 (JRE 1.8.0_242-release-1644-b3-6915495)
Information:java: Errors occurred while compiling module 'SomeApp.common.common-android'
Information:javac 1.8.0_242-release was used to compile java sources
Information:11/8/21 2:46 PM - Build completed with 21 errors and 3 warnings in 8 s 772 ms
/Users/xxx/Documents/Programming/SomeApp/common/common-android/build/generated/source/kapt/debug/com/somecompany/someapp/common/android/persistence/SomeEntityCursor.java
    Error:Error:line (14)java: cannot find symbol
  symbol: class SomeEntity
    Error:Error:line (34)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntityCursor
    Error:Error:line (44)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntityCursor
    Error:Error:line (16)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntityCursor
    Error:Error:line (18)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntityCursor.Factory
/Users/xxx/Documents/Programming/SomeApp/common/common-android/build/generated/source/kapt/debug/com/somecompany/someapp/common/android/persistence/SomeEntity_.java
    Error:Error:line (15)java: cannot find symbol
  symbol: class SomeEntity
    Error:Error:line (93)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntity_
    Error:Error:line (23)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntity_
    Error:Error:line (27)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntity_
    Error:Error:line (34)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntity_
    Error:Error:line (37)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntity_
    Error:Error:line (40)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntity_
    Error:Error:line (44)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntity_
    Error:Error:line (50)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntity_
    Error:Error:line (63)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntity_
    Error:Error:line (73)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntity_
    Error:Error:line (78)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntity_
    Error:Error:line (83)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntity_
    Error:Error:line (88)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntity_
    Error:Error:line (95)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntity_.SomeEntityIdGetter
    Error:Error:line (23)java: cannot find symbol
  symbol:   class SomeEntity
  location: class com.comecompany.someapp.common.android.persistence.SomeEntity_
Run Code Online (Sandbox Code Playgroud)

不幸的是,我在网上找不到有关该问题的任何信息,因此非常感谢任何提示,谢谢!