Известные проблемы с Android Studio и плагином Android Gradle

На этой странице отслеживаются известные проблемы с Android Studio Narwhal и плагином Android Gradle 8.11.0. Если у вас возникла проблема, не упомянутая здесь, сообщите об ошибке .

Переход на предварительную версию: каждый выпуск Android Studio и плагина Android Gradle направлен на повышение стабильности и производительности, а также на добавление новых функций. Чтобы оценить преимущества предстоящих релизов, скачайте и установите Android Studio Preview .

Известные проблемы с Android Studio

В этом разделе описываются известные проблемы, существующие в последней стабильной версии Android Studio.

Запуск конфигурации без «Перед запуском» Gradle-совместимого Make приводит к ошибке развертывания

В Android Studio Ladybug Feature Drop Canary 9 возникла проблема, из-за которой информация о конфигурации запуска удалялась из проектов, открытых в этой версии. Если вы открыли проект в этой версии и запуск приложения приводит к ошибке «Загрузка артефактов сборки», убедитесь, что в активной конфигурации запуска есть шаг «Gradle-aware Make» в разделе «Перед запуском». Для этого выберите «Конфигурации запуска/отладки» > «Изменить конфигурации» , выберите активную конфигурацию запуска и убедитесь, что в разделе «Перед запуском» есть шаг «Gradle-aware Make». К сожалению, Android Studio не может автоматически исправить эту проблему, поскольку некоторые конфигурации запуска могли быть намеренно настроены без шага «Gradle-aware Make».

Функция «Применить изменения и перезапустить действие» не перезапускает действие на устройствах или эмуляторах API уровня 35.

При развертывании изменений кода на устройстве API 35 с помощью функции «Применить изменения и перезапустить действие» приложение не перезапустится, и вы не увидите эффекта от изменений. Если вы перезапустите приложение, вы увидите эффект от изменений кода. Наша команда активно изучает этот вопрос.

Окно помощника Firebase отображает сообщение об ошибке

Если в окне Firebase Assistant (Инструменты > Firebase в главном меню) отображается сообщение об ошибке, сделайте кэши недействительными и перезапустите Android Studio, чтобы исправить ошибку.

Невозможно изолировать представление с помощью инспектора макетов

Возможность изолировать представление с помощью встроенного инспектора макетов временно недоступна. Мы работаем над устранением этой проблемы в будущем выпуске.

Не все узлы композиции можно проверить с помощью инспектора макетов.

Если вы заметили, что не все узлы Compose доступны для проверки при использовании Layout Inspector , это, вероятно, связано с ошибкой, исправленной в Compose версии 1.5.0-alpha04. Если у вас возникла эта проблема, убедитесь, что вы обновились до версии Compose 1.5.0-alpha04 или выше.

Ошибка при отображении предварительного просмотра Compose

Начиная с Android Studio Chipmunk, если вы видите java.lang.NoSuchFieldError: view_tree_saved_state_registry_owner или java.lang.ClassNotFoundException: androidx.savedstate.R$id на панели проблем, обязательно включите зависимость debugImplementation от androidx.lifecycle:lifecycle-viewmodel-savedstate в свой модуль.

Если вы видите java.lang.NoSuchFieldError: view_tree_lifecycle_owner на панели проблем, обязательно включите зависимость debugImplementation от androidx.lifecycle:lifecycle-runtime в свой модуль.

Если вы видите java.lang.NoClassDefFoundError: Could not initialize class androidx.customview.poolingcontainer.PoolingContainer или java.lang.NoClassDefFoundError: androidx/customview/poolingcontainer/PoolingContainerListener на панели проблем, обязательно включите зависимость debugImplementation от androidx.customview:customview-poolingcontainer в свой модуль.

Ошибка при использовании разных паролей для ключа и хранилища ключей

Начиная с версии 4.2, Android Studio теперь работает на JDK 11. Это обновление приводит к изменению базового поведения, связанного с подписыванием ключей.

При переходе в раздел «Сборка» > «Создать подписанный пакет/APK» и попытке настроить подписание приложения для пакета приложений или APK ввод разных паролей для ключа и хранилища ключей может привести к следующей ошибке:

Key was created with errors:
Warning: Different store and Key passwords not supported for PKCS12 Key stores

Чтобы обойти эту проблему, введите один и тот же пароль для ключа и хранилища ключей.

Android Studio не запускается после установки версии 4.2

Studio пытается импортировать предыдущие файлы .vmoptions и очищает их для работы со сборщиком мусора, используемым JDK 11. Если этот процесс завершится неудачей, IDE может не запуститься для некоторых пользователей, которые задали пользовательские параметры виртуальной машины в файле .vmoptions .

Чтобы обойти эту проблему, рекомендуем закомментировать пользовательские параметры в файле .vmoptions (используя символ «#»). Файл .vmoptions находится в следующих местах:

Окна

C:\Users\YourUserName\AppData\ [Local|Roaming] \Google\AndroidStudio4.2\studio64.exe.vmoptions

macOS

~/Library/Application Support/Google/AndroidStudio4.2/studio.vmoptions

Линукс

~/.config/Google/AndroidStudio4.2/studio64.vmoptions

Если Studio по-прежнему не запускается после попытки использования этого решения, см . раздел «Studio не запускается после обновления» ниже.

Приложения, использующие Database Inspector, аварийно завершают работу на эмуляторе Android 11

Приложения, использующие Database Inspector, могут аварийно завершить работу при запуске на эмуляторе Android 11, при этом в logcat будет отображаться следующая ошибка:

 Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)

Чтобы устранить эту проблему, обновите эмулятор Android 11 до версии 9 или выше, перейдя в раздел «Инструменты» > «Менеджер SDK» . На вкладке «Платформы SDK» установите флажок « Показать сведения о пакете» и выберите версию 9 или выше эмулятора Android 11.

Студия не запускается после обновления

Если Studio не запускается после обновления, проблема может быть связана с недопустимой конфигурацией Android Studio, импортированной из предыдущей версии Android Studio, или с несовместимым плагином. В качестве временного решения попробуйте удалить (или переименовать для резервного копирования) указанный ниже каталог в зависимости от версии Android Studio и операционной системы, а затем снова запустить Android Studio. Это сбросит Android Studio к состоянию по умолчанию, удалив все сторонние плагины.

Для Android Studio 4.1 и более поздних версий:

  • Windows: %APPDATA%\Google\AndroidStudio <version>
    Пример: C:\Users\ your_user_name \AppData\Roaming\Google\AndroidStudio4.1

  • macOS: ~/Library/Application Support/Google/AndroidStudio <version>
    Пример: ~/Library/Application Support/Google/AndroidStudio4.1

  • Linux: ~/.config/Google/AndroidStudio <version> и ~/.local/share/Google/AndroidStudio <version>
    Пример: ~/.config/Google/AndroidStudio4.1 и ~/.local/share/Google/AndroidStudio4.1

Для Android Studio 4.0 и более ранних версий:

  • Windows: %HOMEPATH%\.AndroidStudio <version> \config
    Пример: C:\Users\ your_user_name \.AndroidStudio3.6\config

  • macOS: ~/Library/Preferences/AndroidStudio <version>
    Пример: ~/Library/Preferences/AndroidStudio3.6

  • Linux: ~/.AndroidStudio <version> /config
    Пример: ~/.AndroidStudio3.6/config

Обратите внимание, что каталог конфигурации для выпусков Android Studio Canary и Beta — это PreviewX.Y вместо XY для <version> . Например, сборки Android Studio 4.1 Canary используют AndroidStudioPreview4.1 вместо каталога AndroidStudio4.1 , который используется для выпусков Release Candidate и Stable.

Проблема компиляции в мультиплатформенных проектах Kotlin

В коде Kotlin MPP могут возникать ошибки компиляции из-за отсутствующих символов. Обновление плагина Kotlin до версии 1.4 должно решить эту проблему.

Конфликты сопоставления клавиш в Linux

В Linux некоторые сочетания клавиш конфликтуют со стандартными сочетаниями клавиш Linux и сочетаниями клавиш популярных оконных менеджеров, таких как KDE и GNOME. Эти конфликтующие сочетания клавиш могут работать в Android Studio некорректно.

Более подробную информацию об этой проблеме (включая возможные пути ее обхода) можно найти в системе отслеживания ошибок IntelliJ .

Мелкий текст пользовательского интерфейса в ChromeOS

В ChromeOS текст может выглядеть гораздо мельче, чем в предыдущих версиях. Чтобы обойти эту проблему, выполните следующие действия:

  1. Откройте окно «Настройки» , нажав «Файл» > «Настройки».
  2. Перейдите в раздел Внешний вид и поведение > Внешний вид .
  3. Выберите Использовать пользовательский шрифт .
  4. Увеличьте размер шрифта.
  5. В окне «Настройки» перейдите в раздел «Редактор» > «Шрифт» .
  6. Увеличьте размер шрифта.
  7. Нажмите ОК .

Редактирование кода

В этом разделе описываются известные проблемы, связанные с редактором кода.

Зависание ввода с клавиатуры — проблемы «iBus» в Linux

Известны некоторые взаимодействия между демоном iBus в Linux и Android Studio. В некоторых случаях IDE перестаёт реагировать на ввод с клавиатуры или начинает вводить случайные символы. Эта ошибка вызвана отсутствием синхронизации между iBus и XLib + AWT и уже была сообщена в JetBrains и iBus . На данный момент существует три способа решения этой проблемы:

  • Обходной путь 1: принудительно переведите iBus в синхронный режим. Перед запуском Android Studio выполните в командной строке следующее:
    $ IBUS_ENABLE_SYNC_MODE=1 ibus-daemon -xrd
  • Обходной путь 2: Отключите ввод iBus в Android Studio. Чтобы отключить ввод iBus только для Android Studio, выполните следующую команду в командной строке:
    $ XMODIFIERS= ./bin/studio.sh
    Этот обходной путь отключает только методы ввода для Android Studio, но не для всех других запущенных приложений. Обратите внимание: если вы перезапустите демон во время работы Android Studio (например, выполнив команду ibus-daemon -rd ), вы фактически отключите методы ввода для всех остальных приложений, а также можете вызвать сбой JVM Android Studio с ошибкой сегментации.
  • Обходной путь 3: Дважды проверьте назначения сочетаний клавиш, чтобы убедиться, что для команды «Далее» не установлено сочетание клавиш Control+Space, так как оно также используется для автодополнения кода в Android Studio. В Ubuntu 14.04 (Trusty) сочетание клавиш Super+Space используется по умолчанию, но настройки из предыдущих версий могут сохраняться. Чтобы проверить назначения сочетаний клавиш, выполните ibus-setup в командной строке, чтобы открыть окно настроек IBus. В разделе «Сочетания клавиш» проверьте метод ввода «Далее» . Если он установлен на Control+Space, измените его на Super+Space или другое сочетание клавиш по вашему выбору.

Конфигурация проекта

В этом разделе описываются известные проблемы, связанные с конфигурацией проекта и синхронизацией Gradle.

Ошибка синхронизации Gradle: поврежденный канал

Проблема в том, что демон Gradle пытается использовать IPv4 вместо IPv6.

  • Обходной путь 1: В Linux поместите следующее в файл ~/.profile или ~/.bash_profile :
    export _JAVA_OPTIONS="-Djava.net.preferIPv6Addresses=true"
  • Обходной путь 2: в файле vmoptions Android Studio измените строку -Djava.net.preferIPv4Addresses=true на -Djava.net.preferIPv6Addresses=true Дополнительные сведения см. в Руководстве пользователя Networking IPv6 .

Ошибки «не аутентифицированный одноранговый узел» от синхронизации Gradle или SDK Manager

Основная причина этих ошибок — отсутствие сертификата в $JAVA_HOME/jre/lib/certificates/cacerts . Чтобы устранить эти ошибки, выполните следующие действия:

  • Если вы используете прокси-сервер, попробуйте подключиться напрямую. Если прямое подключение работает, то для подключения через прокси-сервер вам может потребоваться добавить сертификат прокси-сервера в файл cacerts с помощью keytool .
  • Переустановите поддерживаемый, неизменённый JDK. Известна проблема, затрагивающая пользователей Ubuntu, из-за которой файл /etc/ssl/certs/java/cacerts становится пустым. Чтобы обойти эту проблему, выполните в командной строке следующее:
    sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure

Развертывание

В этом разделе описываются известные проблемы, связанные с развертыванием вашего приложения на подключенном устройстве.

[Только для Mac OS] Инкрементные обновления не применяются из-за проблемы с отслеживанием файлов Gradle в проектах, сохраненных в /System/Volumes/Data

Проблема Gradle 18149 затрагивает плагины Gradle для Android версии 7.0 и выше, поскольку для них требуется версия Gradle 7.0 и выше . Начиная с Gradle 7.0, отслеживание файлов включено по умолчанию. Если вы работаете в Mac OS и ваш проект сохранён в папке /System/Volumes/Data , отслеживание файлов Gradle не будет корректно отслеживать изменения файлов. Это приведёт к тому, что система сборки не увидит никаких изменений файлов и, следовательно, не обновит APK. Код инкрементального развёртывания в этом случае ничего не сделает, поскольку локальное состояние APK совпадает с состоянием на устройстве.

Чтобы обойти эту проблему, переместите каталог проекта в каталог пользователя, то есть в /Users/username . В этом случае система сборки будет получать уведомления об изменениях файлов благодаря функции отслеживания файлов Gradle, и инкрементные изменения будут успешно применены.

Эмулятор Android HAXM на macOS High Sierra

Для лучшей совместимости и стабильности работы эмулятора Android в macOS High Sierra (10.13) требуется HAXM версии 6.2.1 и выше. Однако в macOS 10.13 процесс установки расширений ядра, таких как HAXM, более сложен. Вам необходимо вручную разрешить установку самого расширения ядра, выполнив следующие действия:

  1. Сначала попробуйте установить последнюю версию HAXM из SDK Manager .
  2. В MacOS перейдите в Системные настройки > Безопасность и конфиденциальность .
  3. Если вы видите предупреждение о том, что загрузка системного программного обеспечения разработчика «Intel Corporation Apps» заблокирована , нажмите « Разрешить »:

Дополнительную информацию и способы обхода проблемы см. на этой веб-странице Apple и в описании проблемы 62395878 .

Применить изменения

В этом разделе описываются известные проблемы, связанные с применением изменений .

Новое имя приложения не применено

Если вы переименуете приложение и попытаетесь применить это изменение, обновлённое имя может не отобразиться. Чтобы обойти эту проблему, нажмите «Выполнить». Значок «Выполнить» чтобы повторно развернуть приложение и увидеть изменения.

Проблема в Android Runtime приводит к ошибке

Если вы используете устройство под управлением Android 8.0 или 8.1, вы можете столкнуться с сообщениями «VERIFICATION_ERROR» при попытке применить определённые типы изменений (особенно при использовании Kotlin). Это сообщение вызвано проблемой в среде выполнения Android, которая исправлена в Android 9.0 и более поздних версиях. Хотя эта проблема приводит к сбою функции «Apply Changes», вы всё равно можете запустить Значок «Выполнить» Перезагрузите приложение, чтобы увидеть изменения. Однако мы рекомендуем обновить устройство до Android 9.0 или более поздней версии.

Отладка и тестирование

В этом разделе описываются известные проблемы, связанные с отладкой и тестированием вашего приложения.

JUnit проверяет отсутствующие ресурсы в classpath при запуске из Android Studio

Если в ваших модулях Java есть определённые папки ресурсов, то эти ресурсы не будут найдены при запуске тестов из IDE. Запуск тестов с помощью Gradle из командной строки будет работать. Выполнение задачи check Gradle из IDE также будет работать. Подробнее см. в описании проблемы 64887 .

Эта проблема возникает из-за того, что в IntelliJ 13 требуется указать только одну папку в качестве classpath. Компоновщик IntelliJ копирует все ресурсы в эту папку сборки, но Gradle не копирует их.

  • Обходной путь 1: Запустите задачу check Gradle из IDE вместо запуска модульного теста.
  • Обходной путь 2: Обновите скрипт сборки, чтобы вручную скопировать ресурсы в папку сборки. Подробнее см. в комментарии №13 .

Выполнение тестов JUnit может привести к двойной компиляции кода.

При создании нового проекта шаблон конфигурации JUnit может быть создан с помощью двух этапов «перед запуском»: Make и Make с поддержкой Gradle. Затем эта конфигурация распространяется на все созданные конфигурации запуска JUnit.

  • Чтобы исправить проблему в текущем проекте, нажмите «Выполнить» > «Изменить конфигурации» и измените конфигурацию JUnit по умолчанию, включив только шаг Make с поддержкой Gradle.
  • Чтобы устранить эту проблему во всех будущих проектах, выберите «Файл» > «Закрыть проект» . Должен появиться экран приветствия. Затем выберите «Настройка» > «Параметры проекта по умолчанию» > «Конфигурации запуска» и измените конфигурацию JUnit, включив только шаг Make с поддержкой Gradle.

Некоторые конфигурации тестового запуска не работают

Не все конфигурации запуска, доступные при щелчке правой кнопкой мыши по методу теста, допустимы. В частности, следующие конфигурации недопустимы:

  • Конфигурации запуска Gradle (на значке которых изображен логотип Gradle) не работают.
  • Конфигурации запуска JUnit (со значком без зеленого Android) не применяются к тестам инструментария, которые нельзя запустить на локальной JVM.
Android Studio также запоминает конфигурацию запуска, созданную в заданном контексте (например, при щелчке правой кнопкой мыши по определённому классу или методу), и не будет предлагать запустить приложение в другой конфигурации в будущем. Чтобы исправить это, выберите «Запуск» > «Изменить конфигурации» и удалите неправильно созданные конфигурации.

Добавление точек останова Java при отладке собственного кода

Пока ваше приложение приостановлено на точке останова в нативном коде, автоматический и двойной отладчики могут не сразу распознать новые установленные вами точки останова Java. Чтобы избежать этой проблемы, добавляйте точки останова Java либо до начала сеанса отладки, либо пока приложение приостановлено на точке останова Java. Подробнее см. в описании проблемы 229949 .

Выход из родного отладчика

При использовании автоматического или двойного отладчика для отладки Java и машинного кода, если вы входите в машинную функцию из вашего Java-кода (например, отладчик приостанавливает выполнение на строке в вашем Java-коде, которая вызывает машинную функцию, и вы нажимаете «Шаг в ) и вы хотите вернуться к своему коду Java, нажмите «Возобновить программу» (вместо «Выйти» или перешагнуть). Процесс вашего приложения все еще будет приостановлен, поэтому нажмите «Возобновить программу». на вкладке your-module -java , чтобы возобновить его. Подробнее см. в выпуске 224385 .

Собственный отладчик зависает при загрузке библиотек

При первом использовании нативного отладчика после обновления до Android Studio 4.2 и более поздних версий нативный отладчик может перестать отвечать при загрузке библиотек с устройства Android. Эта проблема является стойкой и продолжает возникать даже после остановки и перезапуска отладчика. Чтобы исправить эту проблему, удалите кэш LLDB в $USER/.lldb/module-cache/ .

Собственный отладчик аварийно завершает работу с сообщением «Процесс отладки завершён с кодом выхода 127».

Эта ошибка возникает на платформах Linux при запуске нативного отладчика. Она указывает на то, что одна из библиотек, требуемых нативным отладчиком, не установлена в локальной системе. Имя отсутствующей библиотеки может быть уже указано в файле idea.log . Если это не так, вы можете использовать терминал, чтобы перейти в каталог установки Android Studio, и выполнить команду bin/lldb/bin/LLDBFrontend --version чтобы узнать, какие библиотеки отсутствуют. Обычно отсутствующей библиотекой является ncurses5 , поскольку некоторые последние дистрибутивы Linux уже обновлены до ncurses6 .

Профайлеры

В этом разделе описываются известные проблемы с профайлерами.

Профилировщик собственной памяти: профилирование недоступно во время запуска приложения.

В настоящее время функция Native Memory Profiler недоступна при запуске приложения. Эта функция будет доступна в следующей версии.

В качестве обходного пути вы можете использовать автономный профилировщик командной строки Perfetto для захвата профилей запуска.

Ошибки тайм-аута в CPU Profiler

При выборе конфигураций «Sample Java Methods» или «Trace Java Methods» в профилировщике CPU в Android Studio могут возникать ошибки «Recording failed to stop» (Не удалось остановить запись). Часто это ошибки тайм-аута, особенно если в файле idea.log отображается следующее сообщение об ошибке:

Wait for ART trace file timed out

Ошибки тайм-аута, как правило, сильнее влияют на методы трассировки, чем на методы выборки, и на более длинные записи, чем на короткие. В качестве временного решения может быть полезно попробовать более короткие записи, чтобы проверить, исчезнет ли ошибка.

Если у вас возникли проблемы с тайм-аутом в Profiler, пожалуйста, сообщите об ошибке , указав марку/модель вашего устройства (устройств), а также любые соответствующие записи из idea.log и logcat.

Исключение ADB при отладке или профилировании

При использовании Platform Tools 29.0.3 встроенная отладка и профилировщики Android Studio могут работать некорректно, а в файле idea.log при выборе Help > Show Log может появиться сообщение «AdbCommandRejectedException» или «Failed to connect port». Обновление Platform Tools до версии 29.0.4 или выше устраняет обе проблемы.

Чтобы обновить инструменты платформы, выполните следующие действия:

  1. Откройте SDK Manager из Android Studio, нажав «Инструменты» > «SDK Manager» или «SDK Manager». на панели инструментов.
  2. Установите флажок рядом с пунктом Android SDK Platform-Tools, чтобы он стал помечен галочкой. Значок загрузки. должен появиться в левом столбце.
  3. Нажмите «Применить» или «ОК» .

Плагин препятствует работе окна «Вывод сборки»

Использование плагина CMake Simple Highlighter препятствует отображению содержимого в окне «Вывод сборки». Сборка выполняется, и вкладка «Вывод сборки» открывается, но вывод не выводится ( ошибка № 204791544 ).

Порядок установки препятствует запуску

Установка новой версии Android Studio до установки более старой может помешать запуску последней. Например, если сначала установить канареечную версию Android Studio, а затем попытаться установить и запустить стабильную версию, последняя может не запуститься. В таких случаях необходимо очистить кэш для запуска стабильной (старой) версии. В macOS для очистки кэша удалите каталог Library/ApplicationSupport/Google/AndroidStudio version_number . В Windows для очистки кэша используйте функцию очистки диска .

Espresso Test Recorder не работает с Compose

Espresso Test Recorder не работает с проектами, включающими Compose. Чтобы создать тесты пользовательского интерфейса для проектов, включающих Compose, см . раздел Тестирование макета Compose .

Сочетание клавиш Logcat конфликтует с неанглоязычными раскладками клавиатуры

Если вы используете раскладку клавиатуры, отличную от английской, стандартное сочетание клавиш Logcat может конфликтовать с ней и мешать вводу определённых символов при редактировании текста в Android Studio. Чтобы обойти эту проблему, удалите или переназначьте конфликтующую раскладку Logcat. Чтобы изменить раскладку Logcat в Android Studio, перейдите в Android Studio > Настройки > Раскладка клавиатуры и найдите Logcat в списке раскладок. Подробнее см. в проблеме № 263475910 .

Эта проблема будет решена путем удаления ярлыка Logcat в Android Studio Electric Eel Patch 1.

Известные проблемы с плагином Android Gradle

В этом разделе описываются известные проблемы, существующие в последней стабильной версии плагина Android Gradle.

Не все зависимости библиотеки динамических функций проверяются линтом

При запуске lint с checkDependencies = true из модуля приложения зависимости динамических библиотек не проверяются, если только они не являются зависимостями приложения ( проблема № 191977888 ). В качестве обходного решения можно запустить задачу lint для этих библиотек.

Подписание файла, названного с помощью символов возврата каретки

Подписание JAR (схема v1) не поддерживает имена файлов, содержащие символы возврата каретки ( проблема № 63885809 ).

Изменение вариантов выходных данных во время сборки может не работать

Использование Variant API для управления вариантными выходными данными в новом плагине не работает. Однако для простых задач, таких как изменение имени APK во время сборки, оно по-прежнему работает, как показано ниже:

// If you use each() to iterate through the variant objects,
// you need to start using all(). That's because each() iterates
// through only the objects that already exist during configuration time—
// but those object don't exist at configuration time with the new model.
// However, all() adapts to the new model by picking up object as they are
// added during execution.
android.applicationVariants.all { variant ->
    variant.outputs.all {
        outputFileName = "${variant.name}-${variant.versionName}.apk"
    }
}

Однако более сложные задачи, требующие доступа к объектам outputFile , больше не работают. Это связано с тем, что задачи, специфичные для вариантов, больше не создаются на этапе конфигурации. Это приводит к тому, что плагин не знает всех своих выходных данных заранее, но также ускоряет настройку.

manifestOutputFile больше не доступен

Метод processManifest.manifestOutputFile() больше не доступен, и при его вызове возникает следующая ошибка:

A problem occurred configuring project ':myapp'.
   Could not get unknown property 'manifestOutputFile' for task
   ':myapp:processDebugManifest' of type
   com.android.build.gradle.tasks.ProcessManifest.

Вместо вызова manifestOutputFile() для получения файла манифеста для каждого варианта вы можете вызвать processManifest.manifestOutputDirectory() чтобы получить путь к каталогу, содержащему все сгенерированные манифесты. Затем вы можете найти манифест и применить к нему свою логику. В примере ниже динамически изменяется код версии в манифесте:

android.applicationVariants.all { variant ->
    variant.outputs.all { output ->
        output.processManifest.doLast {
            // Stores the path to the maifest.
            String manifestPath = "$manifestOutputDirectory/AndroidManifest.xml"
            // Stores the contents of the manifest.
            def manifestContent = file(manifestPath).getText()
            // Changes the version code in the stored text.
            manifestContent = manifestContent.replace('android:versionCode="1"',
                    String.format('android:versionCode="%s"', generatedCode))
            // Overwrites the manifest with the new text.
            file(manifestPath).write(manifestContent)
        }
    }
}

Проблемы с поддержкой AGP 7.3.0 AIDL и Kotlin 1.7.x

Использование AGP 7.3.0 с KAPT в Kotlin 1.7.x приводит к удалению исходных наборов AIDL для определённых вариантов сборки. Вы по-прежнему можете использовать другие исходные наборы AIDL, включая наборы main/ , типы сборок, варианты продукта и их комбинации. Если вам необходимо использовать исходные наборы AIDL для определённых вариантов, продолжайте использовать Kotlin 1.6.21.

Исправлены известные проблемы

В этом разделе описаны известные проблемы, исправленные в последнем выпуске. Если у вас возникла какая-либо из этих проблем, вам следует обновить Android Studio до последней стабильной или предварительной версии .

Исправлено в Android Studio 2021.1.1

  • Отсутствует вывод lint : текстовый вывод lint не выводится на stdout , когда задача lint находится в UP-TO-DATE ( проблема № 191897708 ). Исправлено в AGP 7.1.0-alpha05.
  • Проблемы с модульным тестированием проекта приложения, использующего плагин Hilt : путь к классам модульного теста содержит неинструментированные классы приложения, что означает, что Hilt не инструментирует классы приложения для обработки внедрения зависимостей при запуске модульных тестов ( проблема № 213534628 ). Исправлено в AGP 7.1.1.

Исправлено в Android Studio 2020.3.1

  • Исключения Lint в проектах Kotlin: проекты Kotlin, в которых установлено checkDependencies = true могут столкнуться с исключениями или ошибками нулевого указателя ( проблема № 158777858 ).

Исправлено в Android Studio 4.2

  • IDE зависает на macOS Big Sur: Android Studio 4.1 может зависнуть при открытии диалогового окна.

Исправлено в Android Studio 4.1

  • Перезапустите, чтобы применить настройки памяти из предыдущей версии IDE: После обновления Android Studio необходимо перезапустить Android Studio, чтобы применить все настройки памяти, перенесенные из более ранней версии IDE.
  • Класс манифеста с пользовательскими строками разрешений больше не генерируется по умолчанию: если вы хотите сгенерировать класс, установите android.generateManifestClass = true .

Исправлено в Android Studio 3.6

  • Ошибка установки APK в LineageOS : развертывание приложения на устройствах под управлением определенных версий LineageOS или CyanogenMod может завершиться ошибкой и вызвать исключение INSTALL_PARSE_FAILED_NOT_APK .

    В Android Studio 3.6 Beta 1 и более поздних версиях среда IDE обрабатывает это исключение, выполняя полную установку приложения при развертывании приложения на устройствах LineageOS или CyanogenMod, что может привести к увеличению времени развертывания.

Исправлено в Android Studio 3.5.2

  • Неправильный стиль кода XML : при редактировании кода XML среда IDE применяла неправильный стиль кода при выборе в строке меню «Код» > «Переформатировать код» .

Исправлено в Android Studio 3.3.1

  • Ошибки нехватки памяти при сканировании проектов на C++ : когда Gradle сканирует проект, содержащий код C++ в нескольких местах на одном диске, сканирование включает все каталоги ниже первого общего каталога. Сканирование большого количества каталогов и файлов может привести к ошибкам нехватки памяти.

    Более подробную информацию об этой проблеме можно найти в описании ошибки , связанной с ней.