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

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

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

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

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

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

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

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

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

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

Если вы заметили, что не все узлы 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 не запускается после обновления ниже.

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

Приложения, использующие инспектор базы данных, могут аварийно завершить работу при работе на эмуляторе 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

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

Проблема компиляции в мультиплатформенных проектах 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+Пробел», измените его на «Супер+Пробел» или другой ярлык по вашему выбору.

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

В этом разделе описаны известные проблемы, связанные с конфигурацией проекта и синхронизацией 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 Дополнительную информацию см. в Руководстве пользователя по сетевому IPv6 .

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

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

  • Если вы используете прокси-сервер, попробуйте подключиться напрямую. Если прямое соединение работает, то для подключения через прокси вам может понадобиться использовать keytool для добавления сертификата прокси-сервера в файл cacerts.
  • Переустановите поддерживаемый неизмененный 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 затрагивает плагин Android Gradle версии 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. Однако в macOS 10.13 более сложный процесс установки расширений ядра, таких как HAXM. Вам необходимо вручную разрешить установку самого расширения ядра следующим образом:

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

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

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

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

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

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

Проблема в среде выполнения Android вызывает ошибку

Если вы используете устройство под управлением Android 8.0 или 8.1, вы можете столкнуться с сообщениями «VERIFICATION_ERROR» при попытке применить определенные типы изменений (особенно если вы используете Kotlin). Это сообщение вызвано проблемой в среде выполнения Android, которая исправлена ​​в Android 9.0 и более поздних версиях. Несмотря на то, что из-за этой проблемы не удается применить изменения, вы все равно можете запустить Значок запуска свое приложение еще раз, чтобы увидеть изменения. Однако мы рекомендуем обновить устройство до Android 9.0 или более поздней версии.

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

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

JUnit тестирует недостающие ресурсы в пути к классам при запуске из Android Studio.

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

Эта проблема возникает из-за того, что начиная с IntelliJ 13 требуется, чтобы в качестве пути к классам была только одна папка. Построитель 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 .

Профайлеры

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

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

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

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

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

При выборе конфигураций «Примеры методов Java» или «Трассировка методов Java» в профилировщике ЦП Android Studio могут возникнуть ошибки «Запись не остановлена». Часто это ошибки тайм-аута, особенно если вы видите следующее сообщение об ошибке в файле idea.log :

Wait for ART trace file timed out

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

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

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

При использовании инструментов платформы 29.0.3 встроенная отладка и профилировщики Android Studio могут работать неправильно, и вы можете увидеть «AdbCommandRejectedException» или «Не удалось подключиться к порту» в файле idea.log при выборе «Справка» > «Показать журнал» . Обновление инструментов платформы до версии 29.0.4 или выше устраняет обе проблемы.

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

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

Плагин предотвращает работу окна вывода сборки

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

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

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

Регистратор тестов эспрессо не работает с Compose

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

Ярлык Logcat конфликтует с неанглийской раскладкой клавиатуры

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

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

Известные проблемы с плагином 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++ находится более чем в одном месте на одном диске, сканирование включает все каталоги ниже первого общего каталога. Сканирование большого количества каталогов и файлов может привести к ошибкам нехватки памяти.

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