更新gradle后Android单元测试无法解析被测类

标签 android gradle gradlew

我将 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 处于测试状态,因为它仅用于测试。

最佳答案

Your app includes a build type that a library dependency does not


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

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

关于更新gradle后Android单元测试无法解析被测类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58923900/

相关文章:

android - 使用 Eclipse 进行 Android 开发 - 找不到 jarsigner.exe4

android - javafx 移植的应用程序性能不佳

android - 如何将媒体 Controller 按钮放在通知栏上?

android - 为 Android 应用程序创建 keystore 时访问被拒绝

gradle - 如何将文件从buildSrc复制到主版本

android - Gradle 配置缓存在本地计算机上有效,但在 GitHub Actions 上失败

Android:找不到或加载主类 org.gradle.wrapper.GradleWrapperMain

gradle - 在子项目上运行 gradle 任务的快捷方式

android - 如何在 Fragment 中设置工具栏的菜单

gradle - 使用 maven-publish 插件签署 POM 文件