Android Studio 3.0 решение проблемы «AAPT2 error»

Android logo

При попытке компиляции старых проектов или создании нового после обновления 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)

Android Studio 3.0 решение проблемы «AAPT2 error»: 12 комментариев

  1. 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
    Директорию поставил собственную, но теперь выдаёт это. Как решить?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *