任务mockableAndroidJar,mockable-android-的执行失败。 jar已经存在

时间:2017-11-01 09:31:40

标签: android android-studio-3.0

我面临Android Studio 3的问题,使用构建目标27和支持lib 27.0.0的gradle android插件3

Error:Execution failed for task ':module:mockableAndroidJar'.
> Output file [[...]/build/generated/mockable-android-27.v3.jar] already exists.

我必须不时地从生成的文件夹中清除或手动删除所有mockable-android jar。所以这意味着我不是要获得更好的构建时间,而是大多数时候都要清理项目。

5 个答案:

答案 0 :(得分:3)

在再次运行任务之前,只需清理现有的jar。运行clean确实有效,但我认为它有点激烈。相反,让android生成的任务依赖于一个非常特定的清理任务:

task cleanAndroidMock(type: Delete) {
    description = 'Deletes the mockable Android jar'

    delete fileTree("${project.buildDir}/generated") {
        include 'mockable-android*.jar'
    }
}

project.afterEvaluate {
    tasks['mockableAndroidJar'].dependsOn cleanAndroidMock
}

答案 1 :(得分:1)

我遇到了这个问题。虽然,使用API​​ 28平台工具。我从路径中删除并重新安装,对我有用。

答案 2 :(得分:0)

我有这个问题以及我使用修改过的android.jar(它显示了所有隐藏的API)。 我没有使用单元测试,并且在Android Studio 2.2.2中没有明显的方法可以禁用它,所以我找到了解决此问题的方法:

转到文件 - >设置 - >构建,执行,部署 - >编译器 添加到"命令行选项": -x:app:prepareReleaseUnitTestDependencies -x:app:mockableAndroidJar -x:app:compileReleaseUnitTestSources 按"确定"并尝试再次重建项目。 现在,将始终跳过单元测试编译任务,并且不会抛出任何错误。

答案 3 :(得分:0)

尝试进入菜单:构建 - >清洁项目。
或者您可以尝试菜单:文件 - > Invalidade缓存/重新启动
两者都适合我!

答案 4 :(得分:0)

最简单的解决方案是导航到给定路径[[...]/build/generated/mockable-android-27.v3.jar]并简单地删除文件mockable-android-27.v3.jar。返回android studio并重新构建。