ARCore für Jetpack XR

Digitale Inhalte mit Wahrnehmungsfunktionen in die reale Welt bringen
Letzte Aktualisierung Stabile Release Releasekandidat Beta-Release Alpha-Release
25. März 2026 - - - 1.0.0-alpha12

Abhängigkeiten deklarieren

Wenn Sie eine Abhängigkeit von ARCore für Jetpack XR hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.

Fügen Sie der Datei build.gradle für Ihre App oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:

Cool

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-alpha12"

    // Optional dependencies for asynchronous conversions
    implementation "androidx.xr.arcore:arcore-guava:1.0.0-alpha12"
    implementation "androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha12"
}

Kotlin

dependencies {
    implementation("androidx.xr.arcore:arcore:1.0.0-alpha12")

    // Optional dependencies for asynchronous conversions
    implementation("androidx.xr.arcore:arcore-guava:1.0.0-alpha12")
    implementation("androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha12")
}

Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben, lassen Sie es uns wissen. Bevor Sie ein neues Problem erstellen, sollten Sie sich jedoch die bereits gemeldeten Probleme in dieser Bibliothek ansehen. Wenn Sie sich einer Problemmeldung anschließen möchten, klicken Sie auf den Button mit dem Stern.

Neues Problem melden

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.0

Version 1.0.0-alpha12

25. März 2026

androidx.xr.arcore:arcore-*:1.0.0-alpha12 ist veröffentlicht. Version 1.0.0-alpha12 enthält diese Commits.

API-Änderungen

  • Config.augmentedObjectCategories wurde von einer Liste in ein Set geändert. (I25a64, b/487376359)
  • Die Typen androidx.xr.arcore.Eye und androidx.xr.arcore.Hand. (I42438, b/449032900)
  • Die Überladung Session.create wurde hinzugefügt, um einen Android-Kontext für die Ressourcenbegrenzung zu übergeben. (I7d3fe, b/415805990, b/477386334)
  • FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT wurde in FakeRuntimeAnchor.anchorResourceLimit geändert. (I90841, b/431992235)
  • Die TiltGesture API ist jetzt experimentell, da sie in Zukunft geändert oder entfernt werden kann. Wenn Sie diese API verwenden möchten, aktivieren Sie @ExperimentalGesturesApi (Ic9858)
  • Die Möglichkeit, Kategorien für das AugmentedObject Tracking in der Konfiguration festzulegen, wurde hinzugefügt (I1f6e4, b/480220930).

Diverse Fehlerkorrekturen

  • Der Chrome-Build wurde korrigiert, indem die Datei META-INF/services/ mit dem tatsächlichen Speicherort von PerceptionRuntimeFactory aktualisiert wurde. (I7a801, b/481288291)

Version 1.0.0-alpha11

25. Februar 2026

androidx.xr.arcore:arcore-*:1.0.0-alpha11 ist veröffentlicht. Version 1.0.0-alpha11 enthält diese Commits.

Version 1.0.0-alpha10

28. Januar 2026

androidx.xr.arcore:arcore-*:1.0.0-alpha10 ist veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.

Neue Funktionen

  • Die TiltGesture API wurde eingeführt, die einen reaktiven Flow für die stabile Erkennung des Geräteneigungszustands (UP/DOWN) mit Übergangsfortschritt bietet. (Ic269f, b/448152779)
  • ARCore für Jetpack XR verwendet jetzt den XR Runtime-Protokollierungsmechanismus. Weitere Informationen finden Sie unter androidx.xr.runtime.Log. (l52735, b/448697662)

API-Änderungen

  • Geospatial.createPoseFromGeospatialPose funktioniert jetzt auf OpenXR-fähigen Geräten. (l362c6)

Version 1.0.0-alpha09

3. Dezember 2025

androidx.xr.arcore:arcore-*:1.0.0-alpha09 ist veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.

Version 1.0.0-alpha08

19. November 2025

androidx.xr.arcore:arcore-*:1.0.0-alpha08 ist veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.

Neue Funktionen

  • ARCore für Jetpack XR unterstützt jetzt Geräte, auf denen Google Play-Dienste für AR verfügbar sind.
  • Geospatial APIs für VPS-Verfügbarkeit und Posenkonvertierung hinzugefügt (I144dc)

Version 1.0.0-alpha07

22. Oktober 2025

androidx.xr.arcore:arcore-*:1.0.0-alpha07 ist veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.

Diverse Fehlerkorrekturen

  • :xr:arcore:arcore-openxr wurde als Implementierungsabhängigkeit zu :xr:arcore:arcore hinzugefügt (I47315, b/446999229).

Version 1.0.0-alpha06

24. September 2025

androidx.xr.arcore:arcore-*:1.0.0-alpha06 ist veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.

API-Änderungen

  • Die Testunterstützung für ARCore wurde zum Modul xr:arcore:arcore-testing migriert. (I25469)
  • ArDevice und RenderViewpoint wurden hinzugefügt, damit Anwendungen die Gerätepose und die Anzeigekonfiguration für Renderingzwecke abrufen können. (Ib7e3f)
  • Die HandJointType-Enumerationen wurden mit dem Präfix HAND_JOINT_TYPE_ umbenannt. (I3f7cd)
  • HandJointType wurde von xr:runtime:runtime zu xr:arcore:arcore verschoben. (Iadb9c, b/409058039)
  • Hand.State stellt jetzt einen java.nio.FloatBuffer mit den Gelenkposen in einem Format bereit, das einen einfachen Zugriff auf leistungsorientierte Anwendungen ermöglicht. (I55e27)

Version 1.0.0-alpha05

30. Juli 2025

androidx.xr.arcore:arcore:1.0.0-alpha05, androidx.xr.arcore:arcore-guava:1.0.0-alpha05 und androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05 sind veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.

Neue Funktionen

  • getPrimaryHandSide hinzugefügt, damit der Entwickler die Informationen zur Handseite abrufen kann (I270bd)
  • Geospatial API zum Prüfen der VPS-Verfügbarkeit hinzugefügt (I58573)
  • ARCore API für checkVpsAvailability (Idbded) hinzugefügt
  • Die Erweiterungsfunktionen stateFlowable wurden zu :xr:arcore:arcore-rxjava3 hinzugefügt, damit sie von Java-Entwicklern verwendet werden können. (I083aa, b/427247794)

API-Änderungen

  • Die *Mode-Werte der Konfiguration wurden umbenannt, um ihr Verhalten widerzuspiegeln. (I6d247, b/414648065)
  • Das Hauptartefakt von ARCore (xr:arcore:arcore) enthält nur asynchrone APIs im Kotlin-Stil. Java-Entwickler können sich auf die Bibliothek xr:arcore:arcore-rxjava3 verlassen, um auf kompatible APIs zuzugreifen. (Ia525e, b/422794329)
  • Das Hauptartefakt von ARCore (xr:scenecore:scenecore) enthält nur asynchrone APIs im Kotlin-Stil. Java-Entwickler können sich auf die Bibliothek xr:arcore:arcore-guava verlassen, um auf kompatible APIs zuzugreifen. (Iffcb4, b/422773524)
  • Anchor.persistAsync() wurde zu AnchorGuava hinzugefügt, damit es von Java-Entwicklern verwendet werden kann. (I4af1c, b/425984631)
  • Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) wurde zu EarthGuava hinzugefügt, damit es von Java-Entwicklern verwendet werden kann. (I66357, b/425992992)
  • Java-Entwickler verwenden die Erweiterungsfunktionen für GltfModel.createAsync in GltfModel.kt. Asynchrone Funktionen in GltfModel werden gelöscht. (I0af60)
  • In dieser Bibliothek werden jetzt JSpecify-Annotationen für Nullsicherheit verwendet, die typbezogen sind. Kotlin-Entwickler sollten das folgende Compiler-Argument verwenden, um die korrekte Verwendung zu erzwingen: -Xjspecify-annotations=strict (dies ist die Standardeinstellung ab Version 2.1.0 des Kotlin-Compilers) (Ia8420, b/326456246)
  • Die Erweiterungsfunktionen subscribeAsFlowable wurden zu :xr:arcore:arcore-rxjava3 hinzugefügt, damit sie von Java-Entwicklern verwendet werden können. (Id3e49, b/427277298)

Version 1.0.0-alpha04

7. Mai 2025

androidx.xr.arcore:arcore:1.0.0-alpha04 ist veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.

API-Änderungen

  • Projekte, die mit Kotlin 2.0 veröffentlicht wurden, erfordern KGP 2.0.0 oder höher. (Idb6b5)
  • TrackingState und HandJointType wurden von ARCore zu Runtime verschoben.
  • Hand.State.isActive (boolean) wurde in Hand.State.trackingState (androidx.xr.runtime.TrackingState) geändert.
  • Anchor.load gibt Anchor.AnchorLoadInvalidUuid zurück, wenn die UUID ungültig ist.

Version 1.0.0-alpha03

26. Februar 2025

androidx.xr.arcore:arcore:1.0.0-alpha03 wurde veröffentlicht. Seit der letzten Alpha-Version gab es keine nennenswerten Änderungen. Version 1.0.0-alpha03 enthält diese Commits.

Version 1.0.0-alpha02

12. Februar 2025

androidx.xr.arcore:arcore:1.0.0-alpha02 ist veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.

Neue Funktionen

  • Unterstützung für Hand-Tracking hinzugefügt. Verwenden Sie Hand.left und Hand.right, um auf die Tracking-Informationen zuzugreifen.
  • APIs, die einen Anker generieren (Anchor.create, Anchor.load, Plane.createAnchor), geben jetzt alle AnchorCreateResult zurück und implementieren AnchorCreateResourcesExhausted korrekt.

Fehlerkorrekturen

  • Anchor.detach verursacht nicht mehr einen schwerwiegenden Absturz aufgrund einer Race Condition mit dem Thread für die Sitzungsaktualisierung.
  • Anchor.create ist stabiler, wenn es auf einem Emulator ausgeführt wird.

Version 1.0.0-alpha01

12. Dezember 2024

androidx.xr.arcore:arcore-* 1.0.0-alpha01 ist veröffentlicht.

Funktionen der ersten Version

Die ARCore für Jetpack XR-Bibliothek ist von der vorhandenen ARCore-Bibliothek inspiriert und bietet Funktionen zum Einblenden digitaler Inhalte in die reale Welt. Diese Bibliothek umfasst Bewegungsverfolgung, persistente Anker, Treffertests und die Erkennung von Ebenen mit semantischer Kennzeichnung (z. B. Boden, Wände und Tischplatten). Im Entwicklerleitfaden erfahren Sie mehr über die Verwendung von ARCore für Jetpack XR.

  • Session: ARCore für Jetpack XR verwendet im Hintergrund die Jetpack XR Runtime, um die Funktionen zu ermöglichen. Sie verwenden eine Sitzung, um mit den meisten ARCore für Jetpack XR APIs zu interagieren. Sehen Sie sich daher die Dokumentation an.

  • Plane: Mit Ebenen können Sie die Welt um sich herum verstehen. Jede Ebene hat ein Label, das sie semantisch beschreibt. Mit subscribe können Sie sich über die neuesten erkannten Ebenen benachrichtigen lassen oder mit state über Änderungen an einer bestimmten Ebene.

  • Anchor: Eine Verknüpfung zwischen einem virtuellen Objekt und einem realen Ort. Anker können an einem bestimmten Ort im Raum (mit create) oder an einem Trackable (mit createAnchor) angebracht werden.

    • Anker können sitzungsübergreifend wiederverwendet werden. Sie können sie mit persist speichern, mit getPersistedAnchorUuids auflisten und mit load abrufen. Achten Sie darauf, dass Sie die Persistenz mit unpersist aufheben, sobald sie nicht mehr verwendet werden.

    • Anker sind zwischen ARCore für Jetpack XR und Jetpack SceneCore interoperabel. Sie können eine AnchorEntity mit einem Anker erstellen. Wenn Sie bereits eine AnchorEntity haben, können Sie mit getAnchor den zugrunde liegenden Anker abrufen.

    • Bieten Sie natürliche Nutzerinteraktionen mit hitTest. Bei einem Treffertest wird ein Ray verwendet, um zu ermitteln, welche Inhalte sich damit schneiden, und um an diesem Ort einen Anchor zu erstellen. Sie können einen Treffertest über ein InputEvent durchführen.

Bekannte Probleme

  • Es kann zu einer Verzögerung zwischen dem Aufrufen von unpersist und dem Entfernen der UUID aus den Ergebnissen kommen, die von getPersistedAnchorUuids zurückgegeben werden.

  • create wird nicht geprüft, ob das System genügend Ressourcen hat, um neue Anker zurückzugeben. Wenn Sie zu viele Anker erstellen, kann es zu einem Absturz kommen.

  • Das Speichern eines Ankers, dessen Persistenz zuvor aufgehoben wurde, wird derzeit nicht unterstützt.

  • Die Verwendung im Emulator wird unterstützt, das Verhalten ist jedoch möglicherweise nicht so stabil wie bei der Ausführung auf einem tatsächlichen Gerät. Insbesondere Aufrufe von create können mit einem Fehler im nativen Code fehlschlagen und die Aktivität sofort beenden.

  • Unter bestimmten Umständen kann es vorkommen, dass beim Aufrufen von persist fälschlicherweise eine RuntimeException mit der Meldung „Anchor was not persisted“ (Anker wurde nicht gespeichert) ausgelöst wird. In diesen Fällen ist die Funktion trotzdem erfolgreich und der Anker wird gespeichert. Als Problemumgehung empfehlen wir, den Aufruf von persist in einen try-Block einzuschließen.