ARCore для Jetpack XR
| Последнее обновление | Основная версия | Release Candidate | Бета-версия | Альфа-версия |
|---|---|---|---|---|
| 7 октября 2026 г. | - | 1.0.0-rc02 | - | - |
Как объявлять зависимости
Чтобы добавить зависимость от ARCore для Jetpack XR, необходимо добавить в проект хранилище Google Maven. Подробная информация приведена в репозитории Google Maven.
Добавьте в файл build.gradle приложения или модуля зависимости для нужных артефактов:
классный
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-rc01" }
Котлин
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-rc01") }
Подробнее о зависимостях приведено в статье Добавление зависимостей сборки.
Отзыв
Ваши отзывы помогают нам улучшать Jetpack. Если вы обнаружите проблемы или решите что-то предложить, отправьте отзыв. Прежде чем создавать новую проблему, ознакомьтесь с существующими. Вы можете добавить свой голос к существующей проблеме, нажав на значок звездочки.
Дополнительную информацию можно найти в документации по системе отслеживания ошибок.
Версия 1.0
Версия 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
- Изменен модификатор изменяемого размера. Теперь вместо двух модификаторов используется один:
ResizePolicy(I7fb0f, b/496257436, b/519672992). - Добавлен параметр movable overload с параметром
movePolicy, а параметрыtransformingMovableиmovableобъявлены устаревшими (Ic88c1, b/481781189) - Удален параметр
TrackingState.TRACKING_DEGRADED из общедоступного API и сопоставлены состояния среды выполнения карты с состоянием PAUSED. ОбновитеTrackingState, чтобы использовать перечисления вместо целочисленных значений для преобразования строк и преобразования во время выполнения. (I3eb5b, b/524326338) - Функция Session.create преобразована в функцию suspend. (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" удалено. Она больше не возникает в среде выполнения ARCore JXR. (Ia851e) androidx.xr.arcore.Anchorиandroidx.xr.arcore.ArDeviceтеперь поддерживаютandroidx.xr.arcore.Trackable. (I57b65)Depth.left,Depth.rightиDepth.monoтеперь не могут иметь нулевое значение (I1fc5e)Face.getUserFaceтеперь не может иметь нулевое значение (I0eac1)RenderViewpoint.left,RenderViewpoint.rightиRenderViewpoint.monoтеперь не могут иметь нулевое значение (Icf7fa).Hand.leftиHand.rightне могут иметь нулевое значение (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) - API
NativeDataперенесен в библиотеку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 теперь можно использовать
OrbiterAnchorPoint + VolumeOffsetилиOrbiterPoseProviderвместо position, offset, offsetType, alignment и elevation. Также удален параметрshouldRenderInNonSpatial. Если разработчик не хочет, чтобы орбитер отображался в не пространственном режиме, ему следует заключить орбитер в оператор if и проверитьSpatialCapabilities. (I9fbb3, b/462428503) - Добавлены перемещаемые модификаторы. В настоящее время эти модификаторы хорошо работают с
SpatialPanelsиSpatialExternalSurface. В ближайшее время они также будут поддерживаться вSpatialGltfModels. Однако мы планируем обеспечить поддержку всехSubspaceComposables. (I9a3cd, b/479530787, b/478935063, b/478935063) - Разработчики должны соблюдать
ArDevice.stateFlow, чтобы отслеживать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, который вернет интерфейс Entity. (I4c450, b/473867483) - Добавлен API
XrLog. Установите для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с List на Set. (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) TiltGestureAPI стал экспериментальным, поскольку в будущем он может быть изменен или удален. Чтобы использовать этот 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. Узнать больше можно на странице
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.- Добавлены геопространственные 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) - В
:xr:arcore:arcore-rxjava3добавлены функции-расширенияstateFlowable, которые могут использовать разработчики на 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 для проверки на наличие нулевых значений, которые применяются к типам. Разработчикам на Kotlin следует использовать следующий аргумент компилятора, чтобы обеспечить правильное использование:
-Xjspecify-annotations=strict(это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin) (Ia8420, b/326456246). - В
:xr:arcore:arcore-rxjava3добавлены функции-расширенияsubscribeAsFlowable, которые могут использовать разработчики на 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 в Runtime.- Значение "
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. При проверке попадания используетсяRay, чтобы определить, с каким контентом пересекается луч, и создать на основе этого местоположенияAnchor. Попробуйте провести проверку попадания изInputEvent.
Известные проблемы
Между вызовом
unpersistи удалением его UUID из результатов, возвращаемых функциейgetPersistedAnchorUuids, может пройти некоторое время.createне проверяет, достаточно ли у системы ресурсов для возврата новых якорей. Создание слишком большого количества якорей может привести к сбою.Сохранение якоря, который ранее был сохранен, а затем удален, в настоящее время не поддерживается.
Использовать эмулятор можно, но его работа может быть менее стабильной, чем на реальном устройстве. В частности, вызовы
createмогут завершаться с ошибкой нативного кода и немедленно прекращать работу.В некоторых случаях при вызове
persistможет быть ошибочно сгенерировано исключениеRuntimeExceptionс сообщением "Якорь не сохранен". В таких случаях функция все равно будет выполнена успешно, и якорь будет сохранен. В качестве временного решения мы рекомендуем обернуть вызовpersistв блокtry.