ARCore para Jetpack XR

Lleva el contenido digital al mundo real con capacidades de percepción.
Actualización más reciente Versión estable Versión potencial Versión beta Versión alfa
21 de octubre de 2026 1.0.0 - - 1.1.0-alpha01

Cómo declarar dependencias

Para agregar una dependencia en ARCore para Jetpack XR, debes agregar el repositorio de Maven de Google a tu proyecto. Consulta el repositorio de Maven de Google para obtener más información.

Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o módulo:

Groovy

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

Kotlin

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

Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.

Comentarios

Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.

Crear un error nuevo

Consulta la documentación sobre la herramienta Issue Tracker para obtener más información.

Versión 1.1

Versión 1.1.0-alpha01

21 de octubre de 2026

Lanzamiento de androidx.xr.arcore:arcore-*:1.1.0-alpha01. La versión 1.1.0-alpha01 contiene estas confirmaciones.

Cambios en la API

  • Se introdujo la API de SpatialAnnotation para hacer un seguimiento de objetos y geometrías físicas en 3D. Se agregó SpatialAnnotationTrackingOptions y su patrón de compilador correspondiente para configurar el seguimiento espacial a través de búferes de imágenes de la cámara. (I918ce)
  • Se introdujeron SpatialAnnotation y SpatialAnnotationTrackingMode en Jetpack XR ARCore, lo que permite a los desarrolladores configurar y hacer un seguimiento de geometrías cuadriláteras 3D limitadas arbitrarias (Quad) orientadas a entornos espaciales físicos del mundo real. (I880e4)
  • Se agregó TestSpatialAnnotation para permitir la simulación programática de anotaciones espaciales en pruebas automatizadas. (If2335).
  • Se agregaron geospatialPose, horizontalAccuracy, verticalAccuracy y orientationYawAccuracy como APIs nuevas para proporcionar más información en el estado geoespacial. (If28f8)

Correcciones de errores

  • Se actualizó la dependencia androidx.lifecycle:lifecycle-runtime a la versión 2.10.0. Esta versión es necesaria para que las verificaciones de lint del entorno de ejecución del ciclo de vida empaquetado se ejecuten con la versión 9.5.0-alpha04 o posterior del AGP. (I99bfd, b/556807521)
  • Se verificó si la cantidad máxima de imágenes era 0 cuando se configuraba AugmentedImage, lo que arrojó UnsupportedOperationException en lugar de fallar de forma inesperada. I6ce439
  • Corrige las fugas de memoria y los problemas de simultaneidad en AugmentedImageRenderer haciendo un seguimiento adecuado de los trabajos de renderización y cancelándolos, eliminando entidades y modificando de forma segura la colección de imágenes. Ie70760

Versión 1.0

Versión 1.0.0

21 de octubre de 2026

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0. La versión 1.0.0 contiene estas confirmaciones.

Funciones principales de la versión 1.0.0:

  • ARCore para Jetpack XR ahora es estable. La biblioteca de ARCore para Jetpack XR proporciona funciones para combinar contenido digital con el mundo real. Esta biblioteca incluye seguimiento de movimiento, anclajes persistentes, pruebas de posicionamiento, identificación de planos con etiquetado semántico (por ejemplo, piso, paredes y mesas) y poses geoespaciales con el Sistema de posicionamiento visual de Google.
  • Para obtener más información, consulta nuestra guía para desarrolladores y la referencia de la API.

Versión 1.0.0-rc02

7 de octubre de 2026

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-rc02. La versión 1.0.0-rc02 incluye estas confirmaciones.

Correcciones de errores

  • Se solucionó un problema por el que OpenXrRuntime no podía configurar la sesión cuando no se admitía el seguimiento de imágenes aumentadas. (I8b9759)
  • Se corrigieron varios problemas, incluidos los siguientes: se mejoró la administración de la memoria en XrInstanceManager con applicationContext, se resolvieron posibles problemas relacionados con el ciclo de vida simplificando los mecanismos de almacenamiento en caché de Session y Scene, y se mejoró ReferenceCleaner para garantizar registros de limpieza con protección de subprocesos y eliminaciones explícitas. (Id0b76c)

Versión 1.0.0-rc01

9 de septiembre de 2026

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-rc01. La versión 1.0.0-rc01 contiene estas confirmaciones.

Versión 1.0.0-beta02

12 de agosto de 2026

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-beta02. La versión 1.0.0-beta02 incluye estas confirmaciones.

Correcciones de errores

  • Se corrigió un problema de simultaneidad en la persistencia de anclajes de OpenXR. (I15c8b).
  • Se implementó toString() en más clases para la depuración. (I587e8)

Versión 1.0.0-beta01

15 de julio de 2026

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-beta01. La versión 1.0.0-beta01 contiene estas confirmaciones.

Cambios en la API

  • Se actualizó el modificador resizable para usar un ResizePolicy en lugar de dos modificadores (I7fb0f, b/496257436, b/519672992).
  • Se agregó una sobrecarga móvil con el parámetro movePolicy y se marcaron como obsoletos transformingMovable y movable (Ic88c1, b/481781189).
  • Se quitó TrackingState.TRACKING_DEGRADED de la plataforma de la API pública y, en su lugar, se asignaron los estados degradados del entorno de ejecución del mapa a PAUSED. Actualiza TrackingState para usar enumeraciones en lugar de valores int para la conversión de cadenas y la conversión del entorno de ejecución. (I3eb5b, b/524326338)
  • Se convirtió Session.create en una función de suspensión. (I5d27f).
  • Se dio de baja ProjectedPermissionsResultContract (I141d5, b/515699436).
  • Se actualizó AnchorEntity para que se llame AnchorSpace (Ifa95e, b/513619219).

Versión 1.0.0-alpha15

17 de junio de 2026

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha15. La versión 1.0.0-alpha15 incluye estas confirmaciones.

Cambios en la API

  • HitResult.createAnchor se quitó. Los desarrolladores pueden crear un ancla que represente el HitResult si el elemento rastreable del resultado es un Anchorable. Para ello, deben proporcionar la posición de la detección a la función createAnchor del Anchorable. (Ia851e).
  • AnchorUnsupportedObject se quitó. Ya no lo arroja un entorno de ejecución de JXR ARCore. (Ia851e).
  • androidx.xr.arcore.Anchor y androidx.xr.arcore.ArDevice ahora implementan androidx.xr.arcore.Trackable. (I57b65)
  • Depth.left, Depth.right y Depth.mono ahora no admiten valores nulos (I1fc5e).
  • Face.getUserFace ahora no admite valores nulos (I0eac1).
  • RenderViewpoint.left, RenderViewpoint.right y RenderViewpoint.mono ahora no admiten valores nulos (Icf7fa).
  • Hand.left y Hand.right no son anulables (Icef37).
  • Se agregó la API de QrCode (Ia0bbe).

Versión 1.0.0-alpha14

19 de mayo de 2026

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha14. La versión 1.0.0-alpha14 incluye estas confirmaciones.

Cambios en la API

  • Se dio de baja GeospatialMode.VPS_AND_GPS en favor de GeospatialMode.SPATIAL y se incorporó un nuevo modo de seguimiento de menor consumo, GeospatialMode.INERTIAL, que solo usa IMU y GPS. (I1e6cd)
  • Las clases de excepción de anclaje personalizadas AnchorInvalidUuidException, AnchorNotAuthorizedException, AnchorUnsupportedLocationException, AnchorRuntimeFailureException y AnchorUnsupportedObjectException ahora son instancias de RuntimeException, que no se deben verificar. (I9356e)
  • Se agregó la API de ArCoreTestRule, incluidas TestArDevice, TestAugmentableObject, TestDepthMap, TestEye, TestFace, TestGeospatial, TestHand, TestPlane, TestRenderViewpoint y TestTrackable (I0ad3c).
  • Quita AnchorLoadInvalidUuid, AnchorCreateUnsupportedObject, AnchorCreateUnsupportedLocation y AnchorCreateNotAuthorized. Todos estos errores ahora son excepciones en el entorno de ejecución. Quita AnchorCreateIllegalState. En la mayoría de los casos, se reemplazó por AnchorCreateTrackingUnavailable. Se agregó AnchorException y las clases derivadas AnchorInvalidUuidException, AnchorNotAuthorizedException, AnchorUnsupportedLocationException, AnchorRuntimeFailureException y AnchorUnsupportedObjectException. (I4c4dd).

Contribución externa

  • Se agregó la API de AugmentedImage para el seguimiento de marcadores personalizados (I0cf09).

Versión 1.0.0-alpha13

6 de mayo de 2026

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha13. La versión 1.0.0-alpha13 incluye estas confirmaciones.

Cambios en la API

  • TrackingState y VpsAvailabilityResult se movieron a androidx.xr.arcore package, y los tipos de androidx.xr.runtime ahora están obsoletos. (Ic7930, b/480462213)
  • Se cambió el nombre de Plane.Type a PlaneType. (I8c90c, b/482675376)
  • Se cambió el nombre de Hand.HandSide a HandSide. (Ica562, b/482675376)
  • Se cambió el nombre de Plane.Label a PlaneLabel. (Ic6b67, b/482675376)
  • Se cambió el nombre de Geospatial.Surface a GeospatialSurface. (I1a8be, b/482675376)
  • Se cambió el nombre de Geospatial.State a GeospatialState. (I203fa, b/482675376)
  • Se movió la API de NativeData a la biblioteca de xr:runtime:runtime. (I87954, b/494251500)
  • Session.create y Session.configure ahora no son exhaustivos y requieren cláusulas else en las sentencias when. (I9885e, b/495805998, b/495805998)
  • androidx.xr.runtime.FieldOfView quedó obsoleto. Se usa androidx.xr.runtime.math.FieldOfView en su lugar. (Ia01a0, b/480233045)
  • Se cambió Orbiter para usar un OrbiterAnchorPoint + VolumeOffset o un OrbiterPoseProvider en lugar de la posición, el desplazamiento, el tipo de desplazamiento, la alineación y la elevación. También se quitó el parámetro shouldRenderInNonSpatial. Si el desarrollador no quiere que el elemento orbital se renderice en un entorno no espacial, debe unirlo en una sentencia if y verificar el SpatialCapabilities. (I9fbb3, b/462428503)
  • Se agregaron modificadores móviles. Estos modificadores funcionan bien, ahora mismo, para SpatialPanels y SpatialExternalSurface. Muy pronto, también se admitirán para SpatialGltfModels. Sin embargo, la intención es que sean compatibles con todos los SubspaceComposables. (I9a3cd, b/479530787, b/478935063, b/478935063)
  • Se espera que los desarrolladores observen el flujo de ArDevice.state para supervisar State.trackingState y ajustar la renderización o las advertencias de su aplicación según corresponda en función de la fidelidad del seguimiento. (Ic00f0, b/445466590)
  • Se cambió el nombre de los valores de enum HandJointType. (Ifbc83, b/482670596)
  • Se cambió el nombre de FaceConfidenceRegion constantes. (Ia62d5, b/482670596)
  • Se cambió el nombre de FaceBlendShapeType constantes. (I33b8b, b/482670596)
  • Se agregaron CreatePoseFromGeospatialPoseErrorInternal y CreateGeospatialPoseFromPoseErrorInternal. (I4bcf1, b/482666615)
  • Se cambió el nombre de DeviceTrackingMode.LAST_KNOWN a SPATIAL_LAST_KNOWN (con un resguardo obsoleto), se agregó INERTIAL_LAST_KNOWN para el seguimiento de 3DoF y se agregó TRACKING_DEGRADED a TrackingState. (Ie661c, b/445466590)
  • GroupEntity quedó obsoleto. Para tener una entidad con solo la funcionalidad de entidad base, llama a Entity.create, que devolverá una interfaz de entidad. (I4c450, b/473867483)
  • Se agregó la API de XrLog. Establece XrLog.isEnableden true para habilitar el registro en JetpackXR y usa XrLog.Level para establecer el nivel de registro. (I76a1f, b/463460895, b/487378441)

Correcciones de errores

  • Agrega la compatibilidad con el estado de seguimiento de dispositivos a los dispositivos de OpenXR. (I91485, b/445466590)

Versión 1.0.0-alpha12

25 de marzo de 2026

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha12. La versión 1.0.0-alpha12 contiene estas confirmaciones.

Cambios en la API

  • Se cambió Config.augmentedObjectCategories de una lista a un conjunto. (I25a64, b/487376359)
  • Los tipos androidx.xr.arcore.Eye y androidx.xr.arcore.Hand (I42438, b/449032900)
  • Se agregó la sobrecarga de Session.create para permitir pasar un Context de Android para el alcance de los recursos. (I7d3fe, b/415805990, b/477386334)
  • Cambia FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT por FakeRuntimeAnchor.anchorResourceLimit. (I90841, b/431992235)
  • Se convirtió la API de TiltGesture en experimental, ya que podría cambiarse o quitarse en el futuro. Para usar esta API, habilita @ExperimentalGesturesApi (Ic9858).
  • Se agregó la capacidad de establecer categorías para el seguimiento de AugmentedObject en la configuración (I1f6e4, b/480220930).

Correcciones de errores

  • Se corrigió la compilación de Chrome actualizando el archivo META-INF/services/ con la ubicación real de PerceptionRuntimeFactory. (I7a801, b/481288291)

Versión 1.0.0-alpha11

25 de febrero de 2026

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha11. La versión 1.0.0-alpha11 incluye estas confirmaciones.

Versión 1.0.0-alpha10

28 de enero de 2026

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha10. La versión 1.0.0-alpha10 contiene estas confirmaciones.

Nuevas funciones

  • Se presenta la API de TiltGesture, que proporciona un Flow reactivo para la detección estable del estado de inclinación del dispositivo (ARRIBA/ABAJO) con el progreso de la transición. (Ic269f, b/448152779)
  • ARCore para Jetpack XR ahora usa el mecanismo de registro del entorno de ejecución de XR. Consulta androidx.xr.runtime.Log para obtener más información. (l52735, b/448697662)

Cambios en la API

  • Geospatial.createPoseFromGeospatialPose ahora funciona en dispositivos compatibles con OpenXR. (l362c6)

Versión 1.0.0-alpha09

3 de diciembre de 2025

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha09. La versión 1.0.0-alpha09 contiene estas confirmaciones.

Versión 1.0.0-alpha08

19 de noviembre de 2025

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha08. La versión 1.0.0-alpha08 contiene estas confirmaciones.

Nuevas funciones

  • ARCore para Jetpack XR ahora admite dispositivos en los que están disponibles los Servicios de Google Play para RA.
  • Se agregaron las APIs de Geospatial para la disponibilidad del VPS y la conversión de poses (I144dc).

Versión 1.0.0-alpha07

22 de octubre de 2025

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha07. La versión 1.0.0-alpha07 incluye estas confirmaciones.

Correcciones de errores

  • Se agregó :xr:arcore:arcore-openxr como dependencia de implementación a :xr:arcore:arcore (I47315, b/446999229).

Versión 1.0.0-alpha06

24 de septiembre de 2025

Lanzamiento de androidx.xr.arcore:arcore-*:1.0.0-alpha06. La versión 1.0.0-alpha06 contiene estas confirmaciones.

Cambios en la API

  • La compatibilidad de pruebas para ARCore se migró al módulo xr:arcore:arcore-testing. (I25469)
  • Se agregaron ArDevice y RenderViewpoint para permitir que las aplicaciones recuperen la pose y la configuración de pantalla del dispositivo con fines de renderización. (Ib7e3f)
  • Cambia el nombre de las enumeraciones HandJointType con el prefijo HAND_JOINT_TYPE_. (I3f7cd)
  • Se movió HandJointType de xr:runtime:runtime a xr:arcore:arcore. (Iadb9c, b/409058039)
  • Hand.State ahora expone un java.nio.FloatBuffer con las poses de las articulaciones en un formato que permite un acceso fácil a las aplicaciones orientadas al rendimiento. (I55e27).

Versión 1.0.0-alpha05

30 de julio de 2025

Lanzamiento de androidx.xr.arcore:arcore:1.0.0-alpha05, androidx.xr.arcore:arcore-guava:1.0.0-alpha05 y androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05. La versión 1.0.0-alpha05 incluye estas confirmaciones.

Nuevas funciones

  • Se agregó getPrimaryHandSide para que el desarrollador pueda obtener la información del lado de la mano (I270bd).
  • Se agregó la API de Geospatial para verificar la disponibilidad del VPS (I58573).
  • Se agregó la API de ARCore para checkVpsAvailability (Idbded).
  • Se agregaron funciones de extensión de stateFlowable a :xr:arcore:arcore-rxjava3 para que las usen los desarrolladores de Java. (I083aa, b/427247794)

Cambios en la API

  • Se cambiaron los nombres de los valores de configuración *Mode para reflejar su comportamiento. (I6d247, b/414648065)
  • El artefacto principal de ARCore (xr:arcore:arcore) solo contendrá APIs asíncronas de estilo Kotlin. Los desarrolladores de Java pueden depender de la biblioteca xr:arcore:arcore-rxjava3 para acceder a las APIs compatibles. (Ia525e, b/422794329).
  • El artefacto principal de ARCore (xr:scenecore:scenecore) solo contendrá APIs asíncronas de estilo Kotlin. Los desarrolladores de Java pueden depender de la biblioteca xr:arcore:arcore-guava para acceder a las APIs compatibles. (Iffcb4, b/422773524)
  • Se agregó Anchor.persistAsync() a AnchorGuava para que lo usen los desarrolladores de Java. (I4af1c, b/425984631)
  • Se agregó Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) a EarthGuava para que lo usen los desarrolladores de Java. (I66357, b/425992992)
  • Los desarrolladores de Java usarán las funciones de extensión para GltfModel.createAsync en GltfModel.kt. Se borrarán las funciones asíncronas en GltfModel. (I0af60).
  • Esta biblioteca ahora usa anotaciones de nulabilidad de JSpecify, que son de uso de tipo. Los desarrolladores de Kotlin deben usar el siguiente argumento del compilador para aplicar el uso correcto: -Xjspecify-annotations=strict (este es el valor predeterminado a partir de la versión 2.1.0 del compilador de Kotlin) (Ia8420, b/326456246)
  • Se agregaron funciones de extensión de subscribeAsFlowable a :xr:arcore:arcore-rxjava3 para que las usen los desarrolladores de Java. (Id3e49, b/427277298)

Versión 1.0.0-alpha04

7 de mayo de 2025

Lanzamiento de androidx.xr.arcore:arcore:1.0.0-alpha04. La versión 1.0.0-alpha04 incluye estas confirmaciones.

Cambios en la API

  • Los proyectos lanzados con Kotlin 2.0 requieren KGP 2.0.0 o una versión posterior para consumirse. (Idb6b5).
  • TrackingState y HandJointType se movieron de ARCore al entorno de ejecución.
  • Se cambió Hand.State.isActive (boolean) por Hand.State.trackingState (androidx.xr.runtime.TrackingState).
  • Anchor.load devuelve Anchor.AnchorLoadInvalidUuid si el UUID no es válido.

Versión 1.0.0-alpha03

26 de febrero de 2025

Lanzamiento de androidx.xr.arcore:arcore:1.0.0-alpha03 sin cambios notables desde la última versión alfa. La versión 1.0.0-alpha03 contiene estas confirmaciones.

Versión 1.0.0-alpha02

12 de febrero de 2025

Lanzamiento de androidx.xr.arcore:arcore:1.0.0-alpha02. La versión 1.0.0-alpha02 incluye estas confirmaciones.

Nuevas funciones

  • Se agregó compatibilidad con el monitoreo de manos. Usa Hand.left y Hand.right para acceder a la información de seguimiento.
  • Las APIs que generan un ancla (Anchor.create, Anchor.load y Plane.createAnchor) ahora devuelven AnchorCreateResult y, además, implementan AnchorCreateResourcesExhausted de forma correcta.

Correcciones de errores

  • Anchor.detach ya no provoca una falla fatal debido a una condición de carrera con el subproceso de actualización de la sesión.
  • Anchor.create es más estable cuando se ejecuta en un emulador.

Versión 1.0.0-alpha01

12 de diciembre de 2024

Lanzamiento de androidx.xr.arcore:arcore-* 1.0.0-alpha01.

Funciones de la versión inicial

Inspirada en la biblioteca de ARCore existente, la biblioteca de ARCore para Jetpack XR proporciona funciones para combinar contenido digital con el mundo real. Esta biblioteca incluye seguimiento de movimiento, anclajes persistentes, pruebas de posicionamiento y detección de planos con etiquetado semántico (por ejemplo, piso, paredes y mesas). Consulta la guía para desarrolladores y obtén más información para trabajar con ARCore para Jetpack XR.

  • Session: ARCore para Jetpack XR usa el entorno de ejecución de Jetpack XR de forma interna para potenciar su funcionalidad. Usarás una sesión para interactuar con la mayoría de las APIs de ARCore para Jetpack XR, así que consulta su documentación.

  • Plane: Usa planos para comprender el mundo que te rodea. Cada plano tiene un Label que lo describe de forma semántica. Puedes usar subscribe para recibir notificaciones sobre los planos detectados más recientes o state para recibir notificaciones sobre los cambios en un plano específico.

  • Anchor: Es un vínculo entre un objeto virtual y una ubicación del mundo real. Los anclajes se pueden adjuntar a una ubicación específica en el espacio (con create) o a un Trackable (con createAnchor).

    • Las anclas se pueden reutilizar en todas las sesiones. Puedes usar persist para almacenarlos, getPersistedAnchorUuids para enumerarlos y load para recuperarlos. Asegúrate de unpersist una vez que ya no estén en uso.

    • Los anclajes son interoperables entre ARCore para Jetpack XR y Jetpack SceneCore. Puedes crear un AnchorEntity con un ancla o, si tienes un AnchorEntity existente, puedes usar getAnchor para recuperar su ancla de respaldo.

    • Ofrece interacciones naturales con los usuarios a través de hitTest. Una prueba de posicionamiento usa un Ray para determinar con qué contenido se cruza y crear un Anchor a partir de esa ubicación. Considera realizar una prueba de posicionamiento desde un InputEvent.

Errores conocidos

  • Es posible que haya una demora entre la llamada a unpersist y la eliminación de su UUID de los resultados que devuelve getPersistedAnchorUuids.

  • create no validará que el sistema tenga suficientes recursos para devolver anclas nuevas. Crear una cantidad excesiva de anclas puede provocar una falla.

  • Por el momento, no se admite conservar un ancla que se conservó y se dejó de conservar anteriormente.

  • Se admite el uso en el emulador, pero es posible que el comportamiento no sea tan estable como cuando se ejecuta en un dispositivo real. En particular, las llamadas a create pueden fallar con un error de código nativo y finalizar la actividad de inmediato.

  • En ciertas circunstancias, es posible que se arroje un RuntimeException por error cuando se llame a persist con el mensaje “No se conservó el ancla”. En esas circunstancias, la función se ejecutará correctamente y se conservará el ancla. Como solución alternativa, te recomendamos que unas la llamada a persist con un bloque try.