Android Studio 1.4 不允许 Android 模块依赖于 Java 测试模块

Android Studio 1.4 doesn't allow Android Module dependency on Java Test modules

我有一组测试(用于我的 Android 应用程序),可以 运行 在 Junit 方法中(右键单击 testClass 文件并 运行 它)在 Android 工作室。它确实依赖 Android 模块并使用 Robolectric。它在 Android Studio 1.3.1.

之前一直有效

然而,当我迁移到 Android Studio 1.4 时,当我同步我的 Gradle 文件时,出现了这个警告

Warning:Ignoring dependency of module 'app' on module 'unit-tests'. Java modules cannot depend on Android modules

有了这个,我的测试也不再被触发,因为我所有的 Android 类 例如不再检测到 AppCompat。

我的 gradle 代码的一部分如下,其中 :app 是我的 android 模块。

def androidModule = project(':app')

dependencies {
    testCompile androidModule
    //... some other dependency
    testCompile 'junit:junit:4.12'
    testCompile 'org.robolectric:robolectric:2.4'
    testCompile 'org.mockito:mockito-all:1.9.5'
    //... some other dependency
}

在同一问题 https://code.google.com/p/android/issues/detail?id=188880&q=label%3AReportedBy-Developer&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars 上找到了这个 link。

如果这是新的 Android Studio 1.4 行为,我的 gradle 文件中有问题,或者只是一个新的 Android Studio 1.4 错误,有人可以解释一下吗?

解决方法

恢复到 Android Studio v1.3.1

似乎,等待 Robolectric 的修复,使用 Android Studio GUI 的唯一解决方法是恢复到 Android Studio v1.3.1(最后一个版本工作,如前所述),没有错误消息。

可以在这里下载:http://tools.android.com/download/studio/stable

使用Gradle执行单元测试

另一种方法是 运行 通过命令行直接在 Gradle 中进行单元测试。从项目的根目录(即 settings.gradle 和 local.properties 文件所在的同一目录),运行:

 ./gradlew test