Android 单元测试 - 没有这样的属性:bootClasspath

2024-02-18

在刚刚宣布的单元测试支持之后,我正在尝试为 Android 执行一个简单的测试用例 -http://tools.android.com/tech-docs/unit-testing-support http://tools.android.com/tech-docs/unit-testing-support

仔细遵循演练后,我正在尝试运行./gradlew test。 我收到此错误:

Execution failed for task ':app:compileDebugGroovy'.
> No such property: bootClasspath for class: com.android.build.gradle.AppPlugin

使用时com.android.tools.build:gradle:1.1.0-rc1.

还有其他人被困在这个问题上吗?


问题是 Groovy Android Gradle 插件(让 Groovy 在 Android 上工作)不只是在版本中与 Android 插件一起使用1.1.0-rcX.

这是直接来自的一段非常有趣的代码groovyx.grooid.GroovyAndroidPlugin, 版本0.3.5(当前最新的,这是source https://github.com/groovy/groovy-android-gradle-plugin/blob/master/src/main/groovy/groovyx/grooid/GroovyAndroidPlugin.groovy#L123)

    def getRuntimeJars(Project project, plugin) {
    int index
    switch (getAndroidPluginVersion(project)) {
        case ~/0\.9\..*/:
            index = 0
            break
        case ~/0\.10\..*/:
        case ~/0\.11\..*/:
        case ~/0\.12\..*/:
        case ~/0\.13\..*/:
        case ~/0\.14\..*/:
        case ~/1\.0\..*/:
            index = 1
            break
        default:
            index = RUNTIMEJARS_COMPAT.size()-1
    }
    def fun = RUNTIMEJARS_COMPAT[index]
    fun(plugin)
}

和定义RUNTIMEJARS_COMPAT:

private static List RUNTIMEJARS_COMPAT = [
        { it.runtimeJars },
        { it.bootClasspath }
]

因此,API 必须在 Android Gradle 之间发生更改0.9.x and 0.10.0(是的,我知道 - 那些谷歌开发人员改变了那里的一切:[)。那么让我们看看Android Plugin版本中的问题制作类1.0.0:

> javap -cp [path to proper jar] com.android.build.gradle.AppPlugin:

public class com.android.build.gradle.AppPlugin extends com.android.build.gradle.BasePlugin implements org.gradle.api.Plugin<org.gradle.api.Project> {
...
public java.util.List super$2$getBootClasspath();
...

是的!这是我们需要的方法(来自父级com.android.build.gradle.BasePlugin班级)。现在版本里没有类似的东西了1.1.0-rc3。更重要的是,APIcom.android.build.gradle.AppPlugin完全改变了,所以这不是一个简单的问题if(version)解决这个问题。

我想没有机会让 Groovy Android Gradle 插件与单元测试一起工作(因为1.1.0)直到作者更新插件。

那我们就等等吧。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 单元测试 - 没有这样的属性:bootClasspath 的相关文章

随机推荐