На этой странице приведена информация о последних выпусках пакета библиотеки поддержки. Сведения о более ранних версиях можно найти в архиве версий библиотеки поддержки.
Рабочая версия 28.0.0
(21 сентября 2018 г.)
Это стабильная версия библиотеки поддержки 28.0.0, которую можно использовать в рабочих проектах. Это последний выпуск функций в пакете android.support. Разработчикам рекомендуется перейти на AndroidX.
Новые функции
-
AnimatedStateListDrawableCompatпозволяет создавать анимированные переходы между состояниями объектов. -
VectorDrawableCompatтеперь поддерживает градиентные иColorStateListзаливки и обводки.
Версия 28.0.0 RC 2
(27 августа 2018 г.)
Эта версия-кандидат библиотеки поддержки считается полностью готовой, а ее общедоступный API стабилен. Если не возникнет критических проблем, эта версия будет выпущена как стабильная. Этот выпуск можно использовать в рабочей среде. Если у вас возникнут проблемы, сообщите нам об этом в общедоступном инструменте отслеживания ошибок.
Устраненные проблемы
- Proguard удаляет конструктор приложения View Model (общедоступная проблема 112230489)
- Исправлено постоянное состояние `AnimatedStateListDrawableCompat`
- Удалена зависимость от Media2 в MediaRouter 1.0.0
- `Fragment.getViewLifecycleOwner()` не останавливается при нажатии кнопки "Домой" (общедоступная проблема 113070421) ([общедоступная проблема 113070421](https://issuetracker.google.com/issues/113070421))
Версия 28.0.0 RC 1
(6 августа 2018 г.)
Эта версия-кандидат библиотеки поддержки считается полностью готовой, а ее общедоступный API стабилен. Если не возникнет критических проблем, эта версия будет выпущена как стабильная. Этот выпуск можно использовать в рабочей среде. Если у вас возникнут проблемы, сообщите нам об этом в общедоступном инструменте отслеживания ошибок.
Примечание. Некоторые библиотеки, например media2, остаются на альфа-стадии, поскольку их API ещё не завершены. Мы не рекомендуем использовать альфа-версии библиотек в рабочих проектах. В рабочих версиях библиотек следует избегать зависимостей от альфа-версий, поскольку их API могут меняться способами, несовместимыми с исходным кодом и двоичными файлами.
Устраненные проблемы
- Меню BottomNavigationView неправильно инициализировано в библиотеке поддержки дизайна
- PositionalDataSource неправильно обрабатывает вставку элементов в начало базы данных
- Ползунки работают нестабильно и не реагируют на действия пользователя
- `SlicesProviderCompat.getPinnedSpecs()` не добавляет идентификаторы пользователей в URI
- RoutePlayer2: при удаленном воспроизведении не выполняется переключение на локальное
- При выполнении действий происходит сбой при анализе кешированного фрагмента
- Сбой приложения Google Поиска при отрисовке статического фрагмента
- ConcurrentModificationException в библиотеке выбора RecyclerView, когда набор данных изменяется с удалением выбора
- PreferenceThemeOverlay обновлен до последней версии темы Material. Если собственная тема не указана, по умолчанию используется PreferenceThemeOverlay.
- Темы PreferenceThemeOverlay.v14 и PreferenceThemeOverlay.v14.Material устарели. Вместо них используйте PreferenceThemeOverlay.
- Видимость группы PreferenceGroup теперь связана с ее дочерними элементами. Если скрыть родительскую группу, ее дочерние элементы также не будут показываться в иерархии. Используйте Preference.isShown(), чтобы узнать, показывается ли Preference пользователю в иерархии.
- Метод Preference.onSetInitialValue(boolean, Object) устарел и заменен на onSetInitialValue(Object). Теперь PreferenceDataStore также правильно восстанавливает значения по умолчанию.
Версия 28.0.0 Beta 1
(июль 2018 г.)
Бета-версия библиотеки поддержки считается полностью готовой, а ее общедоступный API стабилен, за исключением возможных критических проблем. Эту версию можно использовать в рабочих целях, но в ней могут быть ошибки. Если у вас возникнут проблемы, сообщите нам об этом в общедоступном инструменте отслеживания ошибок.
Устраненные проблемы
- GestureSelectionHelper обрабатывает события на невыбираемых объектах
- При изменении значения ползунка значок ползунка может дублироваться.
- IconCompat нарушил работу значков TYPE_URI
- Сбой при использовании ползунка в настройках
- Сбой в Slice.toString()
- Вместо mCallback.onMoved() функция OffsettingListUpdateCallback.onMoved() вызывает mCallback.onRemoved() (проблема 110711937)
Версия 27.1.1
(апрель 2018 г.)
Устраненные проблемы
- AsyncListDiffer не вызывает getChangePayload (проблема AOSP 73961809)
- Метод onCleared в Fragment ViewModel не вызывается (проблема AOSP 74139250)
- RecyclerView.setRecycledViewPool() увеличивает attachCount, даже если адаптер имеет значение null
- RecyclerView NPE, если SmoothScroller.onStop вызывает stop() или startSmoothScroller()
- Транзакция замены фрагмента приводит к тому, что предыдущий фрагмент мерцает после показа нового (проблема AOSP 74051124)
- Критическое изменение обратного вызова загрузчика в версии 27.1.0 (проблема AOSP 74135998)
- Макет с расположением справа налево не работает, если в вертикальном режиме в виде сетки задано больше одного столбца
- onLoadFinished вызывается несколько раз в ViewPager с FragmentPagerAdapter
- AsyncListDiffer должен отправлять обновления после установки текущего списка (проблема AOSP 74003309)
- ShareActionProvider вызывает исключение ClassCastException в версии 27.1.0
- Изменение жизненного цикла фрагмента с помощью ViewPager (проблема AOSP 73976255)
Версия 28.0.0 Alpha 1
(март 2018 г.)
Примечание. Версия 28.0.0-alpha1 – это предварительная версия, поддерживающая предварительную версию Android P для разработчиков. Его API может меняться, и он не обязательно включает функции или исправления ошибок из последних стабильных версий библиотеки поддержки.
Важные изменения
- Как мы уже сообщали в
анонсе Android KTX, мы продолжаем использовать префикс пакета
androidxво всех наших библиотеках. В новый пакет входят совершенно новые библиотеки, в том числеheifwriterиrecyclerview-selection. Мы надеемся, что разделение наandroid.*иandroidx.*поможет вам понять, какие API входят в состав платформы, а какие представляют собой статические библиотеки для разработчиков приложений, работающие в разных версиях Android. - Мы разделили части библиотек support-core-ui, support-core-utils и support-compat на более мелкие библиотеки. Это изменение поможет нам в будущем устранить зависимости библиотеки поддержки. Теперь доступны следующие новые библиотеки:
- asynclayoutinflater (из support-core-ui)
- collections (из support-compat)
- coordinatorlayout (из дизайна)
- cursoradapter (из support-core-ui)
- customview (из support-core-ui)
- documentfile (из support-core-utils)
- drawerlayout (из support-core-ui)
- interpolator (из support-core-ui)
- loader (из support-fragments и core-utils)
- localbroadcastmanager (из support-core-utils)
- print (из support-core-utils)
- slidingpanelayout (из библиотеки support-core-ui)
- swiperefreshlayout (из support-core-ui)
- viewpager (из support-core-ui)
Новые API
recyclerview-selectionпредоставляет помощь в выборе товаров дляRecyclerView. Пакет включает:- Поддержка создания, изменения, проверки и мониторинга изменений в наборе выбранных элементов в списке RecyclerView.
- Поддержка интуитивно понятных действий с несколькими объектами:
- Выбор с помощью сенсорного экрана позволяет пользователям выбирать диапазоны объектов с помощью интуитивно понятного жеста долгого нажатия и перетаскивания.
- Выбор нескольких элементов в списке RecyclerView с помощью мыши позволяет пользователям выбирать блок элементов в списке RecyclerView с помощью традиционных действий указателя мыши.
- Поддержка устройств с сенсорным экраном, в том числе телефонов и ноутбуков, а также устройств с указателем.
- HEIF Writer поддерживает запись статичных изображений в формате HEIF.
- Библиотека дизайна
- Мы добавили новую тему приложения –
Theme.MaterialComponents– с новыми атрибутами и обновленными стилями для компонентов. - Мы добавили следующие компоненты:
- BottomAppBar
- Чип
- ChipGroup
- MaterialButton
- MaterialCardView
- Мы добавили новую тему приложения –
- Фрагменты – это фреймворк, позволяющий приложениям встраивать контент из других приложений.
- slices-builders содержит методы для создания контента в формате шаблона.
- slices-view содержит методы для представления этого контента.
- Действия браузера – это протокол, позволяющий разработчикам приложений запускать для URL согласованное (но настраиваемое) контекстное меню. Эта функция зависит от наличия приложения браузера (например, Chrome, где она пока находится в разработке), поддерживающего действия браузера.
-
ContextCompat.getSystemService()иgetSystemServiceName()позволяют выполнять поиск системных сервисов по типу на всех уровнях API.
Исправлены ошибки.
- Метод onCleared класса Fragment ViewModel не вызывается (проблема AOSP 74139250)
- Метод onLoadFinished() вызывается несколько раз в ViewPager с FragmentPagerAdapter (проблема AOSP 74182171)
- Функция smoothScrollToPosition() класса LinearLayoutManager из RecyclerView в некоторых случаях приводит к нестабильному (туда-сюда) движению (проблема AOSP 71567765).
Версия 27.1.0
(февраль 2018 г.)
Важные изменения
- Реализация загрузчиков была переписана с использованием жизненного цикла. Хотя API остался прежним, изменилось поведение некоторых функций:
initLoader(),restartLoader()иdestroyLoader()теперь можно вызывать только в основном потоке.- Методы
onStartLoading()иonStopLoading()класса Loader теперь вызываются, когда запускается и останавливается содержащий их объект FragmentActivity или Fragment. - Функция
onLoadFinished()будет вызываться только в период сonStart()поonStop. В результате транзакции с фрагментами теперь можно безопасно выполнять вonLoadFinished(). - Методы FragmentController, связанные с загрузчиками, теперь считаются устаревшими.
- Теперь
getDialog()в DialogFragment будет иметь ненулевое значение доonDestroyView(), а не доdismiss(). Теперь вы можете определить, был ли диалог закрыт вручную вonStop(), проверив, возвращает лиgetDialog().isShowing()значение false.
Новые API
ListAdapterдляRecyclerView(вместе сAsyncListDiffer) упрощает вычисление различий в списках в фоновом потоке. Они помогают RecyclerView автоматически анимировать изменения контента, не перегружая поток UI. Они используютDiffUtil.SortedList.ReplaceAllпозволяет обновлять все данные в SortedList, запуская все необходимые анимации для вставок, удалений, изменений и перемещений (перемещения обрабатываются как удаления и вставки).- FragmentActivity и Fragment теперь реализуют
ViewModelStoreOwnerи могут использоваться с конструкторамиViewModelProviderв качестве альтернативыViewModelProviders.of(). - Теперь у фрагментов есть методы
requireContext(),requireActivity(),requireHost()иrequireFragmentManager(), которые возвращают объектNonNullэквивалентных методов get или вызывают исключениеIllegalStateException. - В
WindowCompat,ActivityCompatиViewCompatдобавлена совместимая с@NonNullверсияfindViewById(), которая вызывает исключениеIllegalArgumentException, если целевой объект не найден.requireViewById() - Методы
LoaderCallbacksтеперь имеют подходящие аннотации@Nullableи@NonNull. FileProviderтеперь поддерживаетgetExternalMediaDirs()на устройствах с API 21 и более поздних версий с помощью нового элемента<external-media-path>.
Исправлены ошибки.
- Фрагмент, инициализирующий загрузчик в onCreate, имеет нарушенный жизненный цикл внутри ViewPager
- LoaderManager вызывает исключение IllegalStateException в onLoadFinished
- LoaderViewModel не очищает загрузчики в onCleared
- Class file for android.arch.lifecycle.ViewModelStoreOwner not found
- DialogFragment onDismiss не вызывается сразу после dismiss()
- Эмодзи с флагами стран не работают на устройствах с ключами выпуска при использовании скачиваемых шрифтов
- Библиотека настроек использует атрибуты, которые не работают в старых версиях Android
- Неправильно описаны типы артефактов testlib библиотеки MediaCompat (проблема AOSP 71559905)
- Сбой Google Sans в TypefaceCompatUtil
- Добавлен конструктор ArraySet, который принимает коллекцию.
- updateApi удаляет файлы .ignore, которые должны быть сохранены
- лишние объекты MainFragment, созданные в BrowseFragment;
- Удаление использования отражения из CarRecyclerView
- java.lang.IllegalStateException at FragmentManagerImpl.checkStateLoss
- Got (undocumented) java.lang.SecurityException when using android.support.v4.content.PermissionChecker.checkSelfPermission
- RecyclerView IndexOutOfBoundsException, поскольку State.mPreviousLayoutItemCount не очищается в setAdapter (проблема AOSP 37657125)
- Фрагмент, который инициализирует загрузчик в onCreate, имеет нарушенный жизненный цикл внутри ViewPager (проблема AOSP 34831613)
- Сбой FragmentManagerImpl.execSingleAction
Выпуск версии 27.0.2
(ноябрь 2017 г.)
Исправлены ошибки.
-
EmojiEditTextHelperбросаетNullPointerException. -
IllegalStateException– фрагмент ещё не прикреплен. - Не удается закрыть всплывающее окно со значком трансляции, нажав в любом месте экрана.
-
MediaMetadataCompatбросаетBadParcelableException.
Выпуск версии 27.0.1
(ноябрь 2017 г.)
Исправлены ошибки.
- LifecycleRegistry находится в неправильном состоянии после вызова
startActivityForResult(). (ошибка 65665621) - Цвет неактивных кнопок слишком светлый на более ранних уровнях API.
- После прокрутки пользователь не может нажать на элемент в
RecyclerView. (Проблема AOSP 66996774) - В Talkback при нажатии на дополнительные параметры система не объявляет новое всплывающее окно и не фокусируется на новых параметрах.
Версия 27.0.0
(октябрь 2017 г.)
Различия в API
Изменения в API
- Аннотации Nullability добавлены в различные API, в том числе в следующие: Это может привести к ошибкам компиляции Kotlin, если неверно обработаны возвращаемые типы, допускающие значение null.
-
Fragmentможет использовать версии библиотеки поддержки дляTransitionдля переходов между фрагментами, включая переходы с общими элементами. - Библиотека для постраничной загрузки контента (
android.support.content.ContentPager) позволяет реализовать постраничную загрузку контента, предоставляемого черезContentProvider. Использование этой библиотеки позволяет клиенту избежать дорогостоящих межпроцессных "переключений окон курсора" в потоке UI, предоставляя библиотеку совместимости для функции Android 8.0. -
ViewCompatтеперь добавляет оболочки для методов автозаполнения, в том числеgetImportantForAutofill(),isImportantForAutofill(),setAutofillHints()иsetImportantForAutofill(). -
Leanback
получил новые функции и улучшения, а также лишился некоторых устаревших классов, например:
-
Pickerтеперь может использовать разные разделители между столбцами с помощью методаsetSeparators(). -
DiffCallbackдобавлено, чтобыArrayObjectAdapterмог использовать выходные данные, предоставленныеDiffUtil. - Добавлена инфраструктура для поддержки медиаплееров с переменными элементами управления, а также необязательные элементы управления для перемотки вперед, повтора, перемешивания, перехода к следующему или предыдущему треку и перемотки назад.
- Удалены
MediaControllerGlue, PlaybackControlGlue,PlaybackControlSupportGlueиPlaybackOverlayFragment.
-
- Для тестирования утилита PollingCheck перенесена из AOSP CTS. Он проверяет, выполняется ли условие в течение заданного времени.
- Добавлена инфраструктура для поддержки динамических разрешений в приложениях с мгновенным запуском для Android 5.0 с использованием
PermissionCompatDelegate. - Теперь поддерживаются доверенные специальные вкладки, а также возможность определять связь между приложением и URI источника.
- Поддержка спящего режима в Android Wear упрощена благодаря использованию фрагмента без интерфейса AmbientMode, который также обеспечивает совместимость спящего режима с компонентами архитектуры.
- Команда Wear хочет узнать мнение разработчиков об этом важном изменении. Подробнее о примечаниях к выпуску Android Wear…
- Удалены некоторые устаревшие классы, поскольку мы отказываемся от старых API, выпущенных до версии 14, например
android.support.v7.NotificationCompat(вместо него используйтеNotificationCompatверсии 4),KeyEventCompat,ParallelExecutorCompatиSearchViewCompat. - Все константы метаданных манифеста Wear OS теперь доступны через
android.support.wear.utils.MetadataConstants. - Теперь режим Ambient Mode поддерживается для всех действий, а не только для WearableActivity. Дополнительную информацию можно найти в справочнике по
AmbientMode. -
RoundedDrawableтеперь поддерживает инфляцию XML.
Исправлены ошибки.
- Приложение аварийно завершает работу с библиотекой поддержки 27 и скачиваемым шрифтом
- Шрифты, скачиваемые по запросу, не работают в новых проектах, созданных после обновления SDK
- API SpeechRecognizer не работает после последнего обновления
- Сбой, связанный с фрагментом, во время рисования после удаления анимированного представления
- support-leanback-demos media playback are all broken
- Библиотека поддержки Android добавляет в манифест элемент <meta-data>
- FontResourcesParserCompat должен понимать атрибуты Android
- Leanback Glue не поддерживает клавишу паузы
- Неразрешенный символ в IDE, когда у нескольких пакетов один и тот же идентификатор артефакта.
- Исключение нулевого указателя в CarExtender
- Неправильный режим перемешивания или повтора задан в PlaybackState после создания MediaController
- При переходе между кластерами в библиотеке по умолчанию показываются постеры из следующего кластера
- Метаданные карточки рекомендации обрезаны
- IllegalArgumentException в RecyclerView.attachViewToParent()
- ClassNotFoundException при десериализации SavedState (проблема AOSP 37133281)
- Фокус застревает в RecyclerView
- Как устранить ошибки ANR в Leanback LayoutManager
Выпуск версии 26.1.0
(сентябрь 2017 г.)
Это специальный выпуск, в котором библиотека поддержки интегрирована с жизненными циклами из компонентов архитектуры. Если вы не используете библиотеку Lifecycles, обновлять версию 26.0.2 не нужно. Подробную информацию можно найти в примечаниях к выпуску компонентов архитектуры.
Важные изменения
FragmentиFragmentActivity(базовый класс дляAppCompatActivity) теперь реализуют интерфейсLifecycleOwnerиз компонентов архитектуры.
Версия 26.0.2
(август 2017 г.)
Исправлены ошибки.
- В библиотеке поддержки версии 26.0.0 значки меню стали плоскими
GuidedAction.multilineDescriptionработает некорректно с Leanback
Версия 26.0.1
(август 2017 г.)
Исправлены ошибки.
- Сбой FontCompat 26.0.0 на устройствах с Android O–MR1
- Библиотека поддержки дизайна версии 26.0.0 не должна включать поддержку multidex (проблема 63999442).
- В версии 26.0.0 и более поздних у AppBarLayout есть отступ слева размером 300 пикселей.
- Навигация по элементам управления воспроизведением не работает
- Метод Fragment.onCreateView вызывается до завершения метода onCreate
- android.os.BadParcelableException: ClassNotFoundException when unmarshalling: android.support.v4.media.MediaMetadataCompat
Версия 26.0.0
(июль 2017 г.)
Важно! Библиотеки поддержки теперь доступны в репозитории Google Maven. Вам не нужно скачивать репозиторий поддержки из SDK Manager. Подробнее о том, как настроить библиотеку поддержки…
Важные изменения
- Минимальная версия SDK была повышена до 14. В результате многие API, которые существовали только для совместимости с уровнями API ниже 14, стали устаревшими. Клиентам этих API следует перейти на эквивалентные фреймворки, как указано на справочной странице для каждого устаревшего API.
- Библиотека Wear UI содержит классы, которые помогают реализовывать шаблоны и макеты, работающие на устройствах Wear. Подробнее о том, как использовать библиотеку Wear UI…
- Модуль Percent Supportбольше не поддерживается. Клиентам этого модуля следует перейти на новый виджет
ConstraintLayout, который предоставляется как отдельный артефакт в SDK Manager. android.support.v7.app.NotificationCompatи содержащиеся в нем классы больше не поддерживаются и будут удалены в будущем выпуске:- Вместо
v7.app.NotificationCompat.BuilderиспользуйтеNotificationCompat.Builder. Функции, которые ранее использовали AppCompat Builder версии 7, теперь включены в Compat Builder версии 4. -
DecoratedCustomViewStyleперенесен в пакетandroid.support.v4.app. -
MediaStyleиDecoratedMediaCustomViewStyleтеперь входят в библиотеку media-compat и находятся в пакете android.support.v4.media.app.
- Вместо
Новые API
- Новый логический флаг
fastScrollEnabledдляRecyclerView. Если этот параметр включен, необходимо задать значения дляfastScrollHorizontalThumbDrawable,fastScrollHorizontalTrackDrawable,fastScrollVerticalThumbDrawableиfastScrollVerticalTrackDrawable.
Различия в API
Исправлены ошибки.
- Бесконечный цикл в RecyclerView.toString()
- Исключение ResourceNotFoundException при запуске проекта Kotlin на виртуальном устройстве API 16 после обновления до Canary 6
- java.lang.AssertionError в режиме дизайна с библиотекой поддержки 26.0.0-beta2
- Предпросмотр макета в Android Studio не работает для виджетов из библиотеки поддержки
- Метод Preference.setSingleLineTitle() игнорируется, если объект Preference был создан без атрибутов
- Аннотации DAC "Since" неправильные для версий 25.3.0 и 25.4.0 библиотеки поддержки
- ResourcesCompat.getFont() вызывает исключение
- Название панели инструментов не выделено полужирным шрифтом
- Автоматическое изменение размера с параметром maxLines дает неожиданные результаты
- NullPointerException в TextView.checkForRelayout()
- AppCompatTextViewAutoSizeHelper.setRawTextSize() вызывает requestLayout() во время макета
- Сбои EmojiAppCompatTextView
- Автоматическое изменение размера TextView не работает при изменении текста
- Искажение изображения на экране в Instacart
- UnsupportedOperationException в MenuItemCompat
- NotificationCompat не полностью извлекает действия в API 24 и более поздних версий
- Проблемы с привязкой CoordinatorLayout при обновлении макета