android - 在测试构建脚本中找不到操作栏 Sherlock

标签 android spock robospock

我有 2 个 gradle.build 脚本,一个用于我的应用程序,一个用于我的测试。该应用程序对 actionbarsherlock 的依赖如下:

dependencies {

    compile project(':shared-jars')

    compile ('com.actionbarsherlock:actionbarsherlock:4.4.0@aar') {
        exclude module: 'support-v4'
    }
}

assembleRelease 正常工作。

然而,在进行构建时,测试构建无法编译,因为它找不到 actionbarsherlock。例如:

14:27:52.847 [INFO] [org.gradle.api.internal.tasks.compile.jdk6.Jdk6JavaCompiler] Compiling with JDK Java compiler API.
14:27:54.240 [ERROR] [system.err] /Users/bradrhoads/Documents/src/estante/src/android/src/main/java/org/maf/estante/Discover.java:13: package com.actionbarsherlock.app does not exist

我尝试在测试构建中添加相同的编译依赖项,并尝试依赖应用程序的传递依赖项。但在其他情况下,我得到了未找到的错误。这是整个测试构建脚本:

def props = new Properties()
file("../local.properties").withInputStream {
    stream -> props.load(stream)
}

repositories {
    mavenCentral()
    maven {
        url new File(props['sdk.dir'] + "/extras/android/m2repository/").toURI()
    }
}

apply plugin: 'groovy'


dependencies {
    compile "org.codehaus.groovy:groovy-all:1.8.6"
    compile 'org.robospock:robospock:0.4.4'

    compile 'cglib:cglib-nodep:3.1'

    compile 'com.jakewharton:butterknife:4.0.1'


    //compile fileTree(dir: ':android:libs', include: '*.jar')
    compile project(":shared-jars")

    compile ('com.actionbarsherlock:actionbarsherlock:4.4.0@aar') {
        exclude module: 'support-v4'
    }

    compile (project(":estanteApp")) {
        transitive = true
    }


}

sourceSets.test.java.srcDirs = ['../android/src/main/java', '../android/build/source/r/debug']

test {

    systemProperty 'ro.build.date.utc', '1'
    systemProperty 'ro.kernel.qemu', '0'

    beforeTest { descriptor ->
        logger.lifecycle("Running test: " + descriptor)
    }

    testLogging {
        lifecycle {
            exceptionFormat "full"
        }
    }

    workingDir = '../android/src/main'

}


tasks["test"].dependsOn project(":estanteApp").tasks["compileDebugJava"]

最佳答案

Groovy 插件不理解 aar 依赖。目前只有 android* 插件可以评估此​​类依赖项。

您可以先尝试组装 Android 项目并链接到 build/exploded-aar/com.actionbarsherlock/actionbarsherlock/4.4.0/classes.jar,但我不确定 robolectric 将如何处理 aar 库中的资源。

关于android - 在测试构建脚本中找不到操作栏 Sherlock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24172278/

相关文章:

android - android中的分段recyclerview标题和子项目

Android 应用程序翻译不工作

unit-testing - 如何在 groovy 中使用 Spock 框架对日志记录错误进行单元测试

android - Robospock 初始化错误 NoSuchMethodError 与 Android Studio 3.0

android - 找不到方法include()

java - SQLite 数据库使我的应用程序崩溃

android - Jetpack Compose - 在配置更改时保留 AndroidView 的状态

testing - then 子句中的 spock 单元测试循环

Grails IntegrationSpec IllegalStateException

java - 使用Spock和Robospock进行单元测试以创建SQLite数据库