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

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

Upgrade to preview: Each release of Android Studio and the Android Gradle plugin aims to improve stability and performance, and add new features. To experience the benefits of upcoming releases now, download and install Android Studio Preview .

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

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

Проблема параллельного выполнения Gradle Sync в Android Studio Quail 1

В Android Studio Quail 1 свойство org.gradle.parallel=true в файле gradle.properties больше не включает параллельную загрузку моделей во время синхронизации Gradle. Это приведет к значительному увеличению времени синхронизации для больших проектов.

Чтобы включить параллельную синхронизацию в Android Studio Quail 1, установите параметр org.gradle.tooling.parallel=true в файле gradle.properties вашего проекта.

Android Studio Panda 3 несовместима с плагином IntelliJ Development версии 1.2.0.

При использовании плагина Development IDE версии 1.2.0, начиная с Android Studio Panda 3 Canary 1, выполнение действия завершается с ошибкой ( проблема #492439205 ):

Found interface com.android.tools.idea.gradle.project.build.invoker.GradleBuildInvoker$Request, but class was expected

Разработчики из подразделения Development работают над исправлением для новой версии.

Временное решение : отключение плагина Development IDE версии 1.2.0 решает проблему до тех пор, пока эта несовместимость не будет исправлена ​​в новой версии плагина.

Kotlin 2.0: Лямбда-выражения не могут быть разрешены в инспекторе макета.

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

Временное решение : Добавьте указанную ниже опцию компилятора в качестве временного решения, пока эта проблема не будет исправлена:

kotlin {
  compilerOptions {
    freeCompilerArgs.add("-Xlambdas=class")
  }
}

Запуск конфигурации без использования функции Make, учитывающей особенности Gradle, перед запуском приводит к ошибке развертывания.

There was an issue in Android Studio Ladybug Feature Drop Canary 9 that removed run configuration information from projects that were opened with that version. If you opened your project with that version at some point, and running your app results in the error "loading build artifacts," verify that the active run configuration has the "Gradle-aware Make" step in the "Before launch" section. To verify this click Run/Debug Configurations > Edit Configurations , click the active run configuration and confirm that there is a "Gradle-aware Make" step in the "Before launch" section. Unfortunately Android Studio can't fix this issue automatically because some run configurations may have been intentionally set up without a "Gradle-aware Make" step.

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

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

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

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

Не удается выделить отдельный элемент представления с помощью инспектора компоновки.

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

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

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

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

Начиная с 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 .

If you're seeing java.lang.NoClassDefFoundError: Could not initialize class androidx.customview.poolingcontainer.PoolingContainer or java.lang.NoClassDefFoundError: androidx/customview/poolingcontainer/PoolingContainerListener in the issues panel, make sure to include a debugImplementation dependency to androidx.customview:customview-poolingcontainer in your module.

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

Начиная с версии 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

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

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

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

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

Windows

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

macOS

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

Linux

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

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

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

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

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

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

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

If Studio doesn't start after an upgrade, the problem may be due to an invalid Android Studio configuration imported from a previous version of Android Studio or an incompatible plugin. As a workaround, try deleting (or renaming, for backup purposes) the directory below, depending on the Android Studio version and operating system, and start Android Studio again. This will reset Android Studio to its default state, with all third-party plugins removed.

Для 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.

There are some known interactions between the iBus daemon on Linux and Android Studio. In some scenarios, the IDE stops responding to keyboard input or starts inputting random characters. This bug is triggered by some missing synchronization between iBus and XLib + AWT, and has already been reported upstream to JetBrains and iBus . There are three current workarounds for this issue:

  • Решение 1: Принудительно переведите iBus в синхронный режим. Перед запуском Android Studio выполните в командной строке следующую команду:
    $ IBUS_ENABLE_SYNC_MODE=1 ibus-daemon -xrd
  • Обходной путь 2: Отключение ввода iBus в Android Studio. Чтобы отключить ввод iBus только для Android Studio, выполните следующую команду в командной строке:
    $ XMODIFIERS= ./bin/studio
    This workaround only disables input methods for Android Studio, not any other applications you may be running. Note that if you restart the daemon while Android Studio is running (for example, by running ibus-daemon -rd ), you effectively disable the input methods for all other applications and may also crash Android Studio's JVM with a segmentation fault.
  • Workaround 3: Double-check the shortcut bindings to make sure that the Next input shortcut is not set to Control+Space, since this is also the code completion shortcut in Android Studio. Ubuntu 14.04 (Trusty) makes Super+Space the default shortcut, but settings from previous versions may still be around. To check your shortcut bindings, run ibus-setup on the command line to open the IBus Preferences window. Under Keyboard Shortcuts , check the Next input method . If it is set to Control+Space, change it to Super+Space, or another shortcut of your choice.

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

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

Синхронизация Gradle завершилась с ошибкой: Broken Pipe

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

Ошибки "узел не аутентифицирован" при синхронизации Gradle или SDK Manager.

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

  • If you're behind a proxy, try to connect directly. If the direct connection works, then in order to connect via the proxy you may need to use keytool to add the proxy server's certificate to the cacerts file.
  • Переустановите поддерживаемую, неизмененную версию JDK. Известна проблема, затрагивающая пользователей Ubuntu, которая приводит к пустому файлу /etc/ssl/certs/java/cacerts . Чтобы обойти эту проблему, выполните следующую команду в командной строке:
    sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure

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

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

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

Gradle issue 18149 affects Android Gradle Plugin versions 7.0 and higher because they require Gradle version 7.0 and higher . Starting in Gradle 7.0, file watching is enabled by default. If you are working on Mac OS and your project is saved under /System/Volumes/Data , Gradle file watching will not properly track file changes. This will cause the Build System to not see any file changes and it will therefore not update the APK(s). The incremental deployment code will then do nothing because the local APK state is the same as on the device.

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

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

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

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

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

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

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

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

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

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

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

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

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

При запуске из Android Studio JUnit проверяет наличие отсутствующих ресурсов в classpath.

Если в ваших 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.
  • To fix the issue for all future projects, click File > Close Project . You should see the welcome screen. Then click Configure > Project Defaults > Run Configurations and change the JUnit configuration to only include the Gradle-aware Make step.

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

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

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

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

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

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

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

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

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

Встроенный отладчик завершается с ошибкой "Процесс отладчика завершился с кодом выхода 127".

This error occurs on Linux-based platforms when starting the native debugger. It indicates that one of the libraries required by the native debugger is not installed on the local system. The name of the missing library may be already printed in the idea.log file. If not, you can use a terminal to navigate to the Android Studio installation directory and execute the bin/lldb/bin/LLDBFrontend --version command line to learn which libraries are missing. Typically, the missing library is ncurses5 as some recent Linux distributions have already upgraded to ncurses6 .

Профайлеры

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

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

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

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

Ошибки тайм-аута в профилировщике ЦП

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

Wait for ART trace file timed out

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

Если у вас возникают проблемы с таймаутом при использовании профилировщика, пожалуйста, сообщите об ошибке , указав марку/модель вашего устройства (устройств) и все соответствующие записи из файлов 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 в Android Studio, выбрав Инструменты > Менеджер SDK или нажав Менеджер SDK. на панели инструментов.
  2. Установите флажок рядом с пунктом «Android SDK Platform-Tools» , чтобы отобразилась галочка. Значок загрузки. должно отображаться в левой колонке.
  3. Нажмите «Применить» или «ОК» .

Плагин препятствует работе окна вывода результатов сборки.

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

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

Installing a newer version of Android Studio before an older version might prevent the older version from launching. For example, if you first install the canary version of Android Studio, and then try to install and launch the stable version, the stable version might not launch. In cases like this, you must clear the cache to get the stable (older) version to launch. On macOS, to clear the cache delete the Library/ApplicationSupport/Google/AndroidStudio version_number directory. On Windows, to clear the cache use Disk Cleanup .

Программа Espresso Test Recorder не работает с Compose.

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

Конфликты сочетаний клавиш Logcat с неанглийскими раскладками клавиатуры.

If you're using a non-English keyboard layout, a default Logcat keyboard shortcut might conflict with the layout and prevent you from typing certain characters when editing text in Android Studio. To work around this issue, delete or re-map the conflicting Logcat keymap. To edit the Logcat keymaps in Android Studio, go to Android Studio > Settings > Keymap and search for Logcat in the list of keymaps. For more information, see issue #263475910 .

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

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

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

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

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

Подписной файл, названный символами возврата каретки.

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

Изменение результатов вариантов во время сборки может не сработать.

Использование 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)
        }
    }
}

Проблемы с поддержкой AIDL в AGP 7.3.0 и 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 UP-TO-DATE текстовый вывод команды lint не отображается ( проблема #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++ в нескольких местах на одном диске, сканирование включает все каталоги, расположенные ниже первого общего каталога. Сканирование большого количества каталогов и файлов может привести к ошибкам нехватки памяти.

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