没有生成Gradle的Android插件调试输出

时间:2014-08-12 13:54:58

标签: android gradle

我正在使用Gradle 1.9,android插件的版本是0.7.3。 你可能知道,android插件有两个输出 - debug和release。

我的项目取决于另一个项目。

我已经创建了自己的任务来执行单元测试。这取决于调试输出。 这是它在主项目的build.gradle文件中的定义。

sourceSets {
    unitTest {
        java.srcDirs = ['tests']
    }
}
dependencies {
    unitTestCompile files("build/classes/debug") //This is the debug output of the main project
    unitTestCompile files("../otherproject/build/classes/debug") //This is the debug output of the other project
    unitTestCompile 'junit:junit:4.11'
    unitTestCompile 'org.robolectric:robolectric:2.2'
    unitTestCompile 'com.google.android:android:4.1.1.4'    
    unitTestCompile 'org.mockito:mockito-all:1.9.5'
}
configurations {        
    unitTestCompile.extendsFrom compile
    unitTestCompile.extendsFrom runTime
    unitTestRuntime.extendsFrom unitTestCompile        
    unitTestEclipseCompile {
        extendsFrom unitTestCompile
        exclude group: "com.google.android", name: "android"
        transitive = false
    }        
}
task unitTest(type:Test, dependsOn: assemble) {
    description = "run unit tests"
    testClassesDir = project.sourceSets.unitTest.output.classesDir
    classpath = project.sourceSets.unitTest.runtimeClasspath       

}

问题是没有生成调试输出,所以当我在命令行中输入gradle unitTest时,我得到java.lang.ClassNotFoundException

为了生成调试输出,我必须在运行unitTest之前显式运行gradle assembleDebug

我尝试了以下几项,但都没有效果:

unitTest.dependsOn assembleDebug
assembleDebug.outputs.upToDateWhen { false }

无论任务是否过时,问题都不会消失,因此,例如,如果我对其中一个源文件稍作修改,然后运行gradle unitTest,使用新的.class文件生成释放输出,但调试输出不是。

0 个答案:

没有答案