При попытке компиляции старых проектов или создании нового после обновления Android Studio до версии 3.0 вываливаются ошибки следующего вида:
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Execution failed for task ':app:mergeDebugResources'.
> Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Связано это с тем, что теперь по умолчанию используется AAPT2 (Android Asset Packaging Tool 2.0) и для решения проблемы обычно предлагают просто отказаться от неё. Это решение работает, однако это не решение самой проблемы, а лишь «кривой костыль».
Для отключения AAPT2 необходимо открыть файл gradle.properties
, находящийся в корне проекта, и вставить строчку android.enableAapt2=false
, после чего синхронизовать проект (File -> Synchronize или Crtl+Alt+Y).
Ошибочность такого подхода в том, что отключать использование AAPT2 в пользу старой версии придется вручную в каждом проекте, при этом старая версия может быть объявлена устаревшей и не факт, что в будущем её совсем не выпилят.
Поэтому разбираться надо с самой проблемой, а не закрывать на неё глаза. К тому же это весьма просто.
Если копнуть чуть глубже, то становится ясно, что ошибка вызвана с наличием кириллицы в пути к папке, в которой лежат ресурсы gradle. Связано это с тем, что AAPT2 дружит только с ASCII символами.
Исправляется сея беда следующим образом:
- Открываем настройки File -> Settings (CTRL+ALT+S)
- Ищем вкладку Build, Execution, Deployment -> Gradle
- Меняем путь, прописанный в поле Service directory path, на новый, не содержащий кириллицы.
После этого в новых проектах проблем не будет, а для старых надо просто произвести ребилд: Build -> Make Project (CTRL+F9)
спасибо огромное очень помог все четко и понятно объяснил
Спасибо, добрый человек!
Лучший, спасибо !!!
Спасибо большое. Все четко. Почитаю ваш блог.
Благодарю<3 В два клика все исправил…
Error:Failed to complete Gradle execution.
Cause:
Could not create parent directory for lock file C:\Program Files (x86)\Ubisoft\wrapper\dists\gradle-4.1-all\bzyivzo6n839fup2jbap0tjew\gradle-4.1-all.zip.lck
Директорию поставил собственную, но теперь выдаёт это. Как решить?
Как вариант.
По ссылке _https://gradle.org/releases/ скачать нужный релиз gradle. (выбрать не binary-only, а complete)
В Android Studio: Ctr+Alt+S -> Build, Execution, Deployment -> Gradle
установить Use local gradle distribution и выбрать предварительно скаченный архив.