Не удалось выполнить задачу mockableAndroidJar, mockable-android- . банка уже существует

Я столкнулся с проблемой с Android Studio 3, gradle android plugin 3 с целью сборки 27 и поддержкой lib 27.0.0

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

Мне приходится время от времени очищать или вручную удалять все mockable-android jar из сгенерированной папки. Таким образом, это означает, что вместо того, чтобы улучшать время сборки, мне в большинстве случаев приходится очищать проект.


person Gaurav Vashisth    schedule 01.11.2017    source источник
comment
Вы можете добавить свои файлы gradle?   -  person Nawrez    schedule 01.11.2017


Ответы (5)


Просто очистите существующую банку перед повторным запуском задачи. Запуск 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
}
person johnmartel    schedule 05.04.2018
comment
Это сработало для меня! Не уверен, почему задача не делает этого в первую очередь, если она жалуется, когда файл уже есть. - person fast3r; 18.06.2018

У меня есть эта проблема, а также я использую модифицированный android.jar (в котором раскрыты все скрытые API). Я не использую модульное тестирование, и нет очевидного способа отключить его в Android Studio 2.2.2, поэтому я нашел обходной путь для этой проблемы:

Перейдите в Файл -> Настройки -> Сборка, выполнение, развертывание -> Компилятор. Добавьте в «Параметры командной строки»: -x :app:prepareReleaseUnitTestDependencies -x :app:mockableAndroidJar -x :app:compileReleaseUnitTestSources Нажмите «ОК» и попробуйте Пересоберите проект еще раз. Теперь задачи компиляции модульного тестирования всегда будут пропущены, и ошибки не будут выдаваться.

person Nawrez    schedule 01.11.2017
comment
Используя Android Studio 3.2, нескрытый API android.jar, я тоже сталкиваюсь с этим. Could not resolve all files for configuration ':app:androidApis'. Failed to transform file 'android.jar' to match attributes {artifactType=android-mockable-jar, returnDefaultValues=false} using transform MockableJarTransform - person Weekend; 27.09.2018
comment
@Weekend Вы нашли какое-нибудь решение для этого сообщения об ошибке? Я тоже обновляю Android Studio до 3.2 и ломаю себе яйца с той же ошибкой... :( - person Joan Casadellà; 18.10.2018
comment
@jcasadellaoller Я перехожу на AOSP android.jar, Gradle синхронизирую проект и жду завершения индексации. После этого вернитесь к пользовательскому файлу android.jar, и проект скомпилируется. Я надеюсь, что это также работает для вас. - person Weekend; 19.10.2018
comment
Спасибо за ваш ответ! Наконец откатываем версию com.android.tools.build:gradle: с 3.2.1 на 3.1.1. Синхронизация сборки теперь работает корректно... Подождем новых версий и попробуем еще раз! - person Joan Casadellà; 19.10.2018

У меня была эта проблема. Хотя, с инструментами платформы API 28. Я удалил из пути и переустановил, что сработало для меня.

person PRAISE ELISHA    schedule 22.09.2019

Попробуйте зайти в меню: Build -> Clean Project.
Или вы можете попробовать меню: Файлы -> Недействительные кеши/Перезагрузить
У меня оба сработали!

person João Vitor    schedule 21.11.2017
comment
Или вы можете просто удалить один файл. Но я не собираюсь делать ни каждый билд. - person Eugen Pechanec; 02.03.2018

Самое простое решение - перейти по указанному пути [[...]/build/generated/mockable-android-27.v3.jar] и просто удалить файл mockable-android-27.v3.jar. Вернитесь в студию Android и снова создайте.

person Saurabh Padwekar    schedule 15.04.2018