ARCore для Jetpack XR
| Последнее обновление | Основная версия | Релиз-кандидат | Бета-версия | Альфа-версия |
|---|---|---|---|---|
| 21 октября 2026 г. | 1.0.0 | - | - | 1.1.0-alpha01 |
Объявление зависимостей
Чтобы добавить зависимость от ARCore для Jetpack XR, необходимо добавить в проект репозиторий Google Maven. Подробную информацию можно найти в статье Репозиторий Google Maven.
Добавьте зависимости для нужных артефактов в файл build.gradle приложения или модуля:
Яркий
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) NativeDataAPI перенесен в библиотеку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.stateFlow to monitorState.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) - Добавлен
XrLogAPI. Установите для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 рассказывается в руководстве для разработчиков.
SessionARCore для 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.