【问题标题】:Android unit test unable to resolve class under test after updating gradle更新gradle后Android单元测试无法解析被测类
【发布时间】:2020-03-14 08:58:18
【问题描述】:

我将 Gradle 插件版本从 3.3.2 更新到 3.5.2,我的 Gradle 发行版从 5.3.1 更新到 5.6.4。我还使缓存无效并重新启动。在此更改之后,我的单元测试无法编译并抱怨一个类(我们称之为 Foo)无法解析。 Foo 位于“test”目录中的一个包下。例如:test/java/com/mycompany/mypackage/Foo.java

如果我在 Android Studio 中打开单元测试,一切看起来都很好。 Foo 导入上没有红色下划线,我可以控制点击它就好了。只有当我尝试编译/运行它时,它才会抱怨 Foo 无法解析。

如果我将 Foo 从“test”重新定位到“main”,则单元测试编译并运行得很好。知道如何解决这个问题吗?我想让 Foo 处于测试状态,因为它仅用于测试。

【问题讨论】:

  • 尝试文件 -> 使缓存无效/重新启动。

标签: android gradle gradlew


【解决方案1】:

您的应用包含库依赖项不包含的构建类型

android {
  buildTypes {
      release {
          ...
      }
      dexOptions {
          ...
        // release & debug is in project animators
        matchingFallbacks = ['release', 'debug']
      }
      debug {
          ...
      }
    }
}

设置匹配的配置回退显然是解决这个问题的正确方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 2016-03-08
    相关资源
    最近更新 更多