5

我有一个项目分成许多模块。一个名为 ':testcore' 的模块包含一些测试使用的通用类。

项目结构如下:

:app
     :libraryone
         :testcore
     :librarytwo
         :testcore
     ...

为了使这些文件可用于其他模块,我将它们一一添加到其他模块的测试源集中。

sourceSets {
    test {
        java.srcDirs += RELATIVE_PATH_TO_TESTCORE_JAVA_FILE
    }
}

这一直有效到带有 Gradle 4.1 的 Android Studio 3.0.1 但是对于 Android Studio 3.1.0 和 Gradle 4.4,这现在会导致错误:

Lint 基础结构错误原因:java.lang.reflect.InvocationTargetException

造成的

引起:java.lang.IllegalArgumentException:试图将不存在的文件添加到类路径:....java

此错误似乎是由 Android Gradle 插件 3.1.1 而不是 gradle 4.4 引起的,就像我使用 Gradle 4.4 和 Android Gradle 插件 3.0.0 它返回成功构建一样。

------------------

为了帮助诊断这一点,我创建了一个带有 Android 应用模块和单个库模块的新测试项目,并重新创建了上面显示的构建错误。

这是构建的 gradle 扫描:

https://scans.gradle.com/s/c7yagwqy45hfs

我还在 Google 问题跟踪器上添加了一个错误报告:

https://issuetracker.google.com/issues/78097961

4

0 回答 0