这是我的设置。我有一个带有几个 Java(不是 Android)模块的 Android 项目。
最近我开始使用 Spock(这是一个基于 JUnit 和 Groovy 的测试框架)。
在 Java 模块上,我只需使用 groovy 插件,如下所示:
apply plugin: 'groovy'
然后包括这些依赖项:
dependencies {
testCompile 'org.spockframework:spock-core:1.0-groovy-2.4'
testCompile 'org.codehaus.groovy:groovy-all:2.4.6'
testCompile 'cglib:cglib-nodep:3.1'
testCompile 'org.objenesis:objenesis:2.2'
}
在我的主要 Android 应用程序上,我进行了此设置。在根项目上,我有这个类路径依赖项:
classpath 'org.codehaus.groovy:gradle-groovy-android-plugin:0.3.9'
在应用程序模块上我应用它:
apply plugin: 'groovyx.grooid.groovy-android'
并像这样配置:
androidGroovy {
options {
configure(groovyOptions) {
// used so groovy can do it's magic, I think, not 100% sure
javaAnnotationProcessing = true
}
}
skipJavaC = true // if disabled my CPU melts for some reason
}
我还通过在 Android 上使用 Jack 标志启用了 Java 8:
jackOptions {
enabled true
}
所有的测试都可以在 Spock 上完美运行(甚至是应用程序模块上的测试)。但是,当我尝试在设备或模拟器上运行该应用程序时,我会从 Android Studio 收到多个错误。错误发生在任务中:compileDebugGroovyWithJack
它抱怨无法从外部依赖项(包括支持库)中找到任何类:
有没有人遇到过这个问题?这是一个相当大的障碍:(