ARCore для Jetpack XR

Переносите цифровой контент в реальный мир с помощью возможностей восприятия.
Последнее обновление Основная версия Релиз-кандидат Бета-версия Альфа-версия
21 октября 2026 г. 1.0.0 - - 1.1.0-alpha01

Объявление зависимостей

Чтобы добавить зависимость от ARCore для Jetpack XR, необходимо добавить в проект репозиторий Google Maven. Подробную информацию можно найти в статье Репозиторий Google Maven.

Добавьте зависимости для нужных артефактов в файл build.gradle приложения или модуля:

Groovy

dependencies {
    implementation "androidx.xr.arcore:arcore:1.1.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.xr.arcore:arcore:1.1.0-alpha01")
}

Подробнее о добавлении зависимостей сборки…

Отзыв

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

Создать новую проблему

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

Версия 1.1

Версия 1.1.0-alpha01

21 октября 2026 г.

Выпущены данные "androidx.xr.arcore:arcore-*:1.1.0-alpha01". Версия 1.1.0-alpha01 содержит эти коммиты.

Изменения в API

  • Добавлен API SpatialAnnotation для отслеживания трехмерных физических объектов и их геометрии. Добавлен класс SpatialAnnotationTrackingOptions и соответствующий шаблон Builder для настройки пространственного отслеживания с помощью буферов изображений камеры. (I918ce)
  • В Jetpack XR ARCore добавлены SpatialAnnotation и SpatialAnnotationTrackingMode, чтобы разработчики могли настраивать и отслеживать произвольные ограниченные трехмерные четырехугольные геометрические объекты (Quad), предназначенные для физических пространственных сред реального мира. (I880e4)
  • Добавлен метод TestSpatialAnnotation, позволяющий программно симулировать пространственные аннотации в автоматизированных тестах. (If2335)
  • Добавлены новые API geospatialPose, horizontalAccuracy, verticalAccuracy и orientationYawAccuracy, которые предоставляют больше информации о состоянии Geospatial. (If28f8)

Исправление ошибок

  • Зависимость androidx.lifecycle:lifecycle-runtime обновлена до версии 2.10.0. Эта версия необходима для запуска встроенных проверок времени выполнения жизненного цикла с AGP версии 9.5.0-alpha04 или более поздней. (I99bfd, b/556807521)
  • Добавлена проверка на максимальное количество изображений, равное 0, при настройке AugmentedImage. Теперь в этом случае выдается ошибка UnsupportedOperationException, а не происходит непредвиденный сбой. I6ce439
  • Устраните утечки памяти и проблемы с параллелизмом в AugmentedImageRenderer, правильно отслеживая и отменяя задания рендеринга, удаляя объекты и безопасно изменяя коллекцию изображений. Ie70760

Версия 1.0

Версия 1.0.0

21 октября 2026 г.

Выпущены данные "androidx.xr.arcore:arcore-*:1.0.0". Версия 1.0.0 содержит эти коммиты.

Основные функции версии 1.0.0:

  • Стабильная версия ARCore для Jetpack XR Библиотека ARCore для Jetpack XR позволяет объединять цифровой контент с реальным миром. В эту библиотеку входят отслеживание движения, постоянные привязки, проверка нажатия, идентификация плоскостей с семантическими метками (например, пол, стены и столешницы) и геопространственные позы с использованием системы визуального позиционирования Google.
  • Дополнительную информацию можно найти в руководстве для разработчиков и документации по API.

Версия 1.0.0-rc02

7 октября 2026 г.

Выпущены данные "androidx.xr.arcore:arcore-*:1.0.0-rc02". Версия 1.0.0-rc02 содержит эти коммиты.

Исправление ошибок

  • Исправлена ошибка, из-за которой OpenXrRuntime не удавалось настроить сеанс, если отслеживание дополненных изображений не поддерживалось. (I8b9759)
  • Исправлено несколько проблем, в том числе: улучшено управление памятью в XrInstanceManager за счет использования applicationContext, устранены потенциальные проблемы, связанные с жизненным циклом, путем упрощения механизмов кеширования Session и Scene, а также улучшен ReferenceCleaner, чтобы обеспечить потокобезопасную регистрацию очистки и явное удаление. (Id0b76c)

Версия 1.0.0-rc01

9 сентября 2026 г.

Выпущены данные "androidx.xr.arcore:arcore-*:1.0.0-rc01". Версия 1.0.0-rc01 содержит эти коммиты.

Версия 1.0.0-beta02

12 августа 2026 г.

Выпущены данные "androidx.xr.arcore:arcore-*:1.0.0-beta02". Версия 1.0.0-beta02 содержит эти коммиты.

Исправление ошибок

  • Исправлена проблема параллелизма в сохранении привязки OpenXR. (I15c8b)
  • Метод toString() реализован в большем количестве классов для отладки. (I587e8)

Версия 1.0.0-beta01

15 июля 2026 г.

Выпущены данные "androidx.xr.arcore:arcore-*:1.0.0-beta01". Версия 1.0.0-beta01 содержит эти коммиты.

Изменения в API

  • Обновлен модификатор resizable, чтобы использовать ResizePolicy вместо двух модификаторов (I7fb0f, b/496257436, b/519672992).
  • Добавлена перегрузка movable с параметром movePolicy, а transformingMovable и movable объявлены устаревшими (Ic88c1, b/481781189).
  • Из общедоступного API удалено состояние TrackingState.TRACKING_DEGRADED. Вместо него теперь используется PAUSED. Обновите TrackingState, чтобы использовать перечисления вместо целочисленных значений для преобразования строк и преобразования во время выполнения. (I3eb5b, b/524326338)
  • Функция Session.create преобразована в функцию приостановки. (I5d27f)
  • Прекращена поддержка ProjectedPermissionsResultContract (I141d5, b/515699436).
  • AnchorEntity переименован в AnchorSpace (Ifa95e, b/513619219).

Версия 1.0.0-alpha15

17 июня 2026 г.

Выпущены данные "androidx.xr.arcore:arcore-*:1.0.0-alpha15". Версия 1.0.0-alpha15 содержит эти коммиты.

Изменения в API

  • Поле "HitResult.createAnchor" удалено. Разработчики могут создать якорь, представляющий HitResult, если отслеживаемый объект результата – это Anchorable. Для этого нужно передать позицию попадания в функцию createAnchor объекта Anchorable. (Ia851e)
  • Поле "AnchorUnsupportedObject" удалено. Оно больше не вызывается средой выполнения JXR ARCore. (Ia851e)
  • androidx.xr.arcore.Anchor и androidx.xr.arcore.ArDevice теперь реализуют androidx.xr.arcore.Trackable. (I57b65)
  • Depth.left, Depth.right и Depth.mono теперь не могут иметь значение null (I1fc5e).
  • Face.getUserFace теперь не может иметь значение NULL (I0eac1).
  • RenderViewpoint.left, RenderViewpoint.right, RenderViewpoint.mono теперь не могут иметь значение null (Icf7fa).
  • Hand.left и Hand.right не могут иметь значение NULL (Icef37).
  • Добавлен API QrCode (Ia0bbe).

Версия 1.0.0-alpha14

19 мая 2026 г.

Выпущены данные "androidx.xr.arcore:arcore-*:1.0.0-alpha14". Версия 1.0.0-alpha14 содержит эти коммиты.

Изменения в API

  • Прекращение поддержки GeospatialMode.VPS_AND_GPS в пользу GeospatialMode.SPATIAL и введение нового режима отслеживания с низким энергопотреблением GeospatialMode.INERTIAL, который использует только IMU и GPS. (I1e6cd)
  • Классы исключений для пользовательских привязок AnchorInvalidUuidException, AnchorNotAuthorizedException, AnchorUnsupportedLocationException, AnchorRuntimeFailureException и AnchorUnsupportedObjectException теперь являются экземплярами RuntimeException и не предназначены для проверки. (I9356e)
  • Добавлен API ArCoreTestRule, включая TestArDevice, TestAugmentableObject, TestDepthMap, TestEye, TestFace, TestGeospatial, TestHand, TestPlane, TestRenderViewpoint и TestTrackable (I0ad3c).
  • Удаляет AnchorLoadInvalidUuid, AnchorCreateUnsupportedObject, AnchorCreateUnsupportedLocation и AnchorCreateNotAuthorized. Теперь все эти ошибки являются исключениями в среде выполнения. Удаляет AnchorCreateIllegalState. В большинстве случаев он заменен на AnchorCreateTrackingUnavailable. Добавляет AnchorException и производные классы AnchorInvalidUuidException, AnchorNotAuthorizedException, AnchorUnsupportedLocationException, AnchorRuntimeFailureException и AnchorUnsupportedObjectException. (I4c4dd)

Внешний вклад

  • Добавлен API AugmentedImage для отслеживания пользовательских маркеров (I0cf09).

Версия 1.0.0-alpha13

6 мая 2026 г.

Выпущены данные "androidx.xr.arcore:arcore-*:1.0.0-alpha13". Версия 1.0.0-alpha13 содержит эти коммиты.

Изменения в API

  • Типы TrackingState и VpsAvailabilityResult перенесены в androidx.xr.arcore package, а типы в androidx.xr.runtime теперь не поддерживаются. (Ic7930, b/480462213)
  • Название "Plane.Type" изменено на "PlaneType". (I8c90c, b/482675376)
  • Название "Hand.HandSide" изменено на "HandSide". (Ica562, b/482675376)
  • Название "Plane.Label" изменено на "PlaneLabel". (Ic6b67, b/482675376)
  • Название "Geospatial.Surface" изменено на "GeospatialSurface". (I1a8be, b/482675376)
  • Название "Geospatial.State" изменено на "GeospatialState". (I203fa, b/482675376)
  • NativeData API перенесен в библиотеку xr:runtime:runtime. (I87954, b/494251500)
  • Session.create и Session.configure теперь не являются исчерпывающими и требуют использования else в операторах when. (I9885e, b/495805998, b/495805998)
  • Поддержка androidx.xr.runtime.FieldOfView прекращена. Используйте вместо него androidx.xr.runtime.math.FieldOfView. (Ia01a0, b/480233045)
  • В Orbiter вместо position, offset, offsetType, alignment и elevation теперь используется OrbiterAnchorPoint + VolumeOffset или OrbiterPoseProvider. Также удален параметр shouldRenderInNonSpatial. Если разработчик не хочет, чтобы орбитер отображался в непространственном режиме, он должен обернуть орбитер в оператор if и проверить SpatialCapabilities. (I9fbb3, b/462428503)
  • Добавлены перемещаемые модификаторы. Эти модификаторы хорошо работают для SpatialPanels и SpatialExternalSurface. Скоро они будут поддерживаться и для SpatialGltfModels. Однако мы планируем обеспечить поддержку всех SubspaceComposables. (I9a3cd, b/479530787, b/478935063, b/478935063)
  • Разработчики должны отслеживать ArDevice.state Flow to monitor State.trackingState и корректировать рендеринг или предупреждения в приложении в зависимости от точности отслеживания. (Ic00f0, b/445466590)
  • Переименованы значения перечисления HandJointType. (Ifbc83, b/482670596)
  • Переименовано констант: FaceConfidenceRegion. (Ia62d5, b/482670596)
  • Переименовано констант: FaceBlendShapeType. (I33b8b, b/482670596)
  • Добавлены CreatePoseFromGeospatialPoseErrorInternal и CreateGeospatialPoseFromPoseErrorInternal. (I4bcf1, b/482666615)
  • DeviceTrackingMode.LAST_KNOWN переименован в SPATIAL_LAST_KNOWN (с устаревшим резервным вариантом), добавлен INERTIAL_LAST_KNOWN для отслеживания 3DoF, а также добавлен TRACKING_DEGRADED в TrackingState. (Ie661c, b/445466590)
  • Прекращена поддержка функции GroupEntity. Чтобы получить объект только с базовыми функциями, вызовите Entity.create, который вернет интерфейс объекта. (I4c450, b/473867483)
  • Добавлен XrLog API. Установите для XrLog.isEnabled значение true, чтобы включить ведение журнала в JetpackXR, и используйте XrLog.Level, чтобы задать уровень ведения журнала. (I76a1f, b/463460895, b/487378441)

Исправление ошибок

  • Добавьте поддержку состояния отслеживания устройств в устройства openxr. (I91485, b/445466590)

Версия 1.0.0-alpha12

25 марта 2026 г.

Выпущены данные "androidx.xr.arcore:arcore-*:1.0.0-alpha12". Версия 1.0.0-alpha12 содержит эти коммиты.

Изменения в API

  • Тип Config.augmentedObjectCategories изменен со списка на набор. (I25a64, b/487376359)
  • Типы androidx.xr.arcore.Eye и androidx.xr.arcore.Hand. (I42438, b/449032900)
  • Добавлена перегрузка Session.create, позволяющая передавать контекст Android для определения области действия ресурса. (I7d3fe, b/415805990, b/477386334)
  • Изменяет FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT на FakeRuntimeAnchor.anchorResourceLimit. (I90841, b/431992235)
  • API TiltGesture становится экспериментальным, поскольку в будущем он может быть изменен или удален. Чтобы использовать этот API, включите @ExperimentalGesturesApi (Ic9858).
  • Добавлена возможность задавать категории для отслеживания AugmentedObject в конфигурации (I1f6e4, b/480220930).

Исправление ошибок

  • Исправлена сборка Chrome: файл META-INF/services/ обновлен с учетом фактического местоположения PerceptionRuntimeFactory. (I7a801, b/481288291)

Версия 1.0.0-alpha11

25 февраля 2026 г.

Выпущены данные "androidx.xr.arcore:arcore-*:1.0.0-alpha11". Версия 1.0.0-alpha11 содержит эти коммиты.

Версия 1.0.0-alpha10

28 января 2026 г.

Выпущены данные "androidx.xr.arcore:arcore-*:1.0.0-alpha10". Версия 1.0.0-alpha10 содержит эти коммиты.

Новые функции

  • Добавлен API TiltGesture, который предоставляет реактивный Flow для стабильного определения наклона устройства (вверх/вниз) с прогрессом перехода. (Ic269f, b/448152779)
  • ARCore для Jetpack XR теперь использует механизм XR Runtime Logging. Узнать больше можно на странице androidx.xr.runtime.Log. (l52735, b/448697662)

Изменения в API

  • Geospatial.createPoseFromGeospatialPose теперь работает на устройствах с поддержкой OpenXR. (l362c6)

Версия 1.0.0-alpha09

3 декабря 2025 г.

Выпущены данные "androidx.xr.arcore:arcore-*:1.0.0-alpha09". Версия 1.0.0-alpha09 содержит эти коммиты.

Версия 1.0.0-alpha08

19 ноября 2025 г.

Выпущены данные "androidx.xr.arcore:arcore-*:1.0.0-alpha08". Версия 1.0.0-alpha08 содержит эти коммиты.

Новые функции

  • ARCore для Jetpack XR теперь поддерживает устройства, на которых доступны сервисы Google Play для AR.
  • Добавлены Geospatial API для доступности VPS и преобразования позы (I144dc).

Версия 1.0.0-alpha07

22 октября 2025 г.

Выпущены данные "androidx.xr.arcore:arcore-*:1.0.0-alpha07". Версия 1.0.0-alpha07 содержит эти коммиты.

Исправление ошибок

  • :xr:arcore:arcore-openxr добавлен как зависимость реализации в :xr:arcore:arcore (I47315, b/446999229).

Версия 1.0.0-alpha06

24 сентября 2025 г.

Выпущены данные "androidx.xr.arcore:arcore-*:1.0.0-alpha06". Версия 1.0.0-alpha06 содержит эти коммиты.

Изменения в API

  • Поддержка тестирования для ARCore перенесена в модуль xr:arcore:arcore-testing. (I25469)
  • Добавление разрешений ArDevice и RenderViewpoint, чтобы приложения могли получать данные о положении устройства и конфигурации экрана для рендеринга. (Ib7e3f)
  • Переименуйте перечисления HandJointType с префиксом HAND_JOINT_TYPE_. (I3f7cd)
  • Файл "HandJointType" перемещен из папки "xr:runtime:runtime" в папку "xr:arcore:arcore". (Iadb9c, b/409058039)
  • Теперь Hand.State предоставляет java.nio.FloatBuffer с позами суставов в формате, который позволяет легко получать доступ к приложениям, ориентированным на производительность. (I55e27)

Версия 1.0.0-alpha05

30 июля 2025 г.

Выпущены androidx.xr.arcore:arcore:1.0.0-alpha05, androidx.xr.arcore:arcore-guava:1.0.0-alpha05 и androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05. Версия 1.0.0-alpha05 содержит эти коммиты.

Новые функции

  • Добавьте getPrimaryHandSide, чтобы разработчик мог получить информацию о стороне руки (I270bd)
  • Добавление API для проверки доступности VPS (I58573)
  • Добавьте ARCore API для checkVpsAvailability (Idbded)
  • Функции расширения stateFlowable добавлены в :xr:arcore:arcore-rxjava3 для использования разработчиками Java. (I083aa, b/427247794)

Изменения в API

  • Значения *Mode в конфигурации были переименованы, чтобы лучше отражать их поведение. (I6d247, b/414648065)
  • Основной артефакт ARCore (xr:arcore:arcore) будет содержать только асинхронные API в стиле Kotlin. Разработчики Java могут использовать библиотеку xr:arcore:arcore-rxjava3 для доступа к совместимым API. (Ia525e, b/422794329)
  • Основной артефакт ARCore (xr:scenecore:scenecore) будет содержать только асинхронные API в стиле Kotlin. Разработчики Java могут использовать библиотеку xr:arcore:arcore-guava для доступа к совместимым API. (Iffcb4, b/422773524)
  • Anchor.persistAsync() добавлено в AnchorGuava для использования разработчиками Java. (I4af1c, b/425984631)
  • Пользователь Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) добавлен в группу EarthGuava для разработчиков Java. (I66357, b/425992992)
  • Разработчики Java будут использовать функции расширения для GltfModel.createAsync в GltfModel.kt. Асинхронные функции в GltfModel будут удалены. (I0af60)
  • Теперь в этой библиотеке используются аннотации JSpecify nullness, которые относятся к типу type-use. Разработчикам Kotlin следует использовать следующий аргумент компилятора, чтобы обеспечить правильное использование: -Xjspecify-annotations=strict (это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin) (Ia8420, b/326456246).
  • Функции расширения subscribeAsFlowable добавлены в :xr:arcore:arcore-rxjava3 для использования разработчиками Java. (Id3e49, b/427277298)

Версия 1.0.0-alpha04

7 мая 2025 г.

Выпущены данные "androidx.xr.arcore:arcore:1.0.0-alpha04". Версия 1.0.0-alpha04 содержит эти коммиты.

Изменения в API

  • Для проектов, выпущенных с Kotlin 2.0, требуется KGP 2.0.0 или более поздней версии. (Idb6b5)
  • TrackingState и HandJointType перенесены из ARCore в среду выполнения.
  • Hand.State.isActive (boolean) заменено на Hand.State.trackingState (androidx.xr.runtime.TrackingState).
  • Anchor.load возвращает Anchor.AnchorLoadInvalidUuid, если UUID недействителен.

Версия 1.0.0-alpha03

26 февраля 2025 г.

В версии androidx.xr.arcore:arcore:1.0.0-alpha03 нет заметных изменений по сравнению с последней альфа-версией. Версия 1.0.0-alpha03 содержит эти коммиты.

Версия 1.0.0-alpha02

12 февраля 2025 г.

Выпущены данные "androidx.xr.arcore:arcore:1.0.0-alpha02". Версия 1.0.0-alpha02 содержит эти коммиты.

Новые функции

  • Добавлена поддержка отслеживания рук. Чтобы получить доступ к информации об отслеживании, используйте Hand.left и Hand.right.
  • API, которые генерируют привязку (Anchor.create, Anchor.load, Plane.createAnchor), теперь возвращают AnchorCreateResult и правильно реализуют AnchorCreateResourcesExhausted.

Исправление ошибок

  • Anchor.detach больше не вызывает критический сбой из-за состояния гонки с потоком обновления сеанса.
  • Anchor.create работает стабильнее в эмуляторе.

Версия 1.0.0-alpha01

12 декабря 2024 г.

Выпущены данные "androidx.xr.arcore:arcore-* 1.0.0-alpha01".

Функции в первой версии

Библиотека ARCore для Jetpack XR создана на основе существующей библиотеки ARCore и позволяет объединять цифровой контент с реальным миром. Эта библиотека включает отслеживание движения, постоянные привязки, проверку нажатия и идентификацию плоскостей с семантическими метками (например, пол, стены и столешницы). Подробнее о работе с ARCore для Jetpack XR рассказывается в руководстве для разработчиков.

  • Session ARCore для Jetpack XR использует Jetpack XR Runtime для обеспечения своей функциональности. Вы будете использовать сеанс для взаимодействия с большинством API ARCore для Jetpack XR, поэтому ознакомьтесь с его документацией.

  • Plane: используйте плоскости, чтобы лучше понимать окружающий мир. У каждой плоскости есть семантическое описание Label. Вы можете использовать subscribe, чтобы получать уведомления о последних обнаруженных плоскостях, или state, чтобы получать уведомления об изменениях в определенной плоскости.

  • Anchor – связь между виртуальным объектом и местом в реальном мире. Якоря можно прикреплять к определенному местоположению в пространстве (с помощью create) или к Trackable (с помощью createAnchor).

    • Якоря можно использовать повторно в разных сеансах. Вы можете использовать persist для их хранения, getPersistedAnchorUuids для их перечисления и load для их получения. Не забудьте unpersist их, когда они больше не будут нужны.

    • Якоря совместимы между ARCore для Jetpack XR и Jetpack SceneCore. Вы можете создать AnchorEntity с помощью привязки или, если у вас есть AnchorEntity, использовать getAnchor, чтобы получить его резервную привязку.

    • Обеспечьте естественное взаимодействие с пользователями с помощью hitTest. Метод hitTest использует Ray, чтобы определить, с какими объектами он пересекается, и создать Anchor в этом месте. Попробуйте выполнить hitTest из InputEvent.

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

  • Между вызовом unpersist и удалением UUID из результатов, возвращаемых getPersistedAnchorUuids, может пройти некоторое время.

  • create не будет проверять, достаточно ли у системы ресурсов для возврата новых привязок. Создание чрезмерного количества якорей может привести к сбою.

  • Сохранение якоря, который ранее был сохранен и удален, в настоящее время не поддерживается.

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

  • В некоторых случаях при вызове persist может ошибочно появляться сообщение RuntimeException "Якорь не сохранен". При этом функция все равно будет работать, а якорь – сохраняться. Рекомендуем обернуть вызов persist блоком try.