XR-Laufzeit

Starten Sie Ihre benutzerdefinierte AR- oder 3D-Sitzung mit unserer nativen Laufzeit.
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 der XR-Laufzeit hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie unter Google Maven-Repository.

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

Groovy

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

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

    // Use in environments that do not support OpenXR
    testImplementation "androidx.xr.runtime:runtime-testing:1.0.0-alpha12"
}

Kotlin

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

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

    // Use in environments that do not support OpenXR
    testImplementation("androidx.xr.runtime:runtime-testing: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.runtime:runtime-*: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).
  • Das Flag unscaledGravityAlignedActivitySpace wurde aus Session.create entfernt. ActivitySpace ist jetzt immer nicht skaliert und an der Schwerkraft ausgerichtet. (If6f11, b/458173423)
  • Session.create wurde überladen, um die Übergabe eines Android-Kontexts für die Ressourcenbegrenzung zu ermöglichen. (I7d3fe, b/415805990, b/477386334)
  • JvmOverloads wurde zu FloatSize2d.to3d, Matrix3.copy und Matrix4.copy hinzugefügt (I69586, b/481371562).
  • Es wurde die Möglichkeit hinzugefügt, Kategorien für das AugmentedObject Tracking in der Konfiguration festzulegen (I1f6e4, b/480220930).
  • Das Modul xr:runtime:runtime-interfaces wurde hinzugefügt. (I52ac6, b/461561664)

Version 1.0.0-alpha11

25. Februar 2026

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

API-Änderungen

  • Die Schnittstelle ConfigMode wurde auf die interne Verwendung beschränkt (Ibfb87).
  • androidx.xr.runtime.Config.GeospatialMode wurde auf Paketebene verschoben (Ibe682).
  • androidx.xr.runtime.Config.FaceTrackingMode wurde auf Paketebene verschoben (Iac501).
  • androidx.xr.runtime.Config.AnchorPersistenceMode wurde auf Paketebene verschoben (I0360f).
  • androidx.xr.runtime.Config.DepthEstimationMode wurde auf Paketebene verschoben (I7e3e9).
  • androidx.xr.runtime.Config.DeviceTrackingMode wurde auf Paketebene verschoben (I3aacd).
  • androidx.xr.runtime.Config.HandTrackingMode wurde auf Paketebene verschoben (I658f3).
  • androidx.xr.runtime.Config.PlaneTrackingMode wurde auf Paketebene verschoben (Ia251b).
  • androidx.xr.runtime.XrDevice.DisplayBlendMode wurde auf Paketebene verschoben (I6f333).
  • Es wurde eine Factory-Methode hinzugefügt, um ein XrDevice mit einem Kontext, einer Sitzung und einem CoroutineContext zu erstellen. (I139c5)
  • SpatialApiVersionHelper wurde hinzugefügt, um die auf der Plattform verfügbare Laufzeitversion von Android XR abzufragen. (I7c53c)
  • Das Modul xr:runtime:runtime-openxr wurde hinzugefügt (Ib42ea).

Version 1.0.0-alpha10

28. Januar 2026

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

API-Änderungen

  • ConfigMode.HeadTrackingMode wurde durch ConfigMode.DeviceTrackingMode ersetzt. (le273e, b/467150206)
  • Die Methoden toNormalized, times(float) und div(float) von Quaternion wurden entfernt. Diese Methoden sind redundant, da alle Quaternions zur Erstellungszeit normalisiert werden und die Klasse unveränderlich ist. (l558fc, b/460210457)

Diverse Fehlerkorrekturen

  • Der Dokumentation zu Session.create wurde ein Beispiel hinzugefügt, das zeigt, wie Sie vermeiden, eine Sitzung im Hauptthread der Anwendung zu erstellen. (le5554, b/463687170)
  • Anwendungen können jetzt keine BoundingBox mit einem NaN-Wert erstellen. (l58c14, b/464025895)

Version 1.0.0-alpha09

3. Dezember 2025

androidx.xr.runtime:runtime-*: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.runtime:runtime-*:1.0.0-alpha08 ist veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.

Neue Funktionen

  • XrDevice wurde hinzugefügt, um Informationen zu den Gerätefunktionen bereitzustellen. (Ic9d1f)
  • Die neue API ConfigMode.isSupported wurde hinzugefügt, um Sitzungsfunktionen abzufragen. (Iff7af)
  • Die API XrDisplay.BlendMode wurde hinzugefügt. (I484e4)

API-Änderungen

  • [XrDevice.getPreferredBlendMode] wurde in [XrDevice.getPreferredDisplayBlendMode] umbenannt. (I7e48f)

Version 1.0.0-alpha07

22. Oktober 2025

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

API-Änderungen

  • Entfernen Sie SessionConfigureConfigureNotSupported und ersetzen Sie es durch UnsupportedOperationException. (I7680f)

Version 1.0.0-alpha06

24. September 2025

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

API-Änderungen

  • HandJointType wurde von xr:runtime:runtime nach xr:arcore:arcore verschoben. (Iadb9c, b/409058039)
  • Der Operator für die elementweise Multiplikation für componentWiseMultiplication für Vector2, Vector3 und Vector4 wurde geändert, um die Skalierung zu ermöglichen. Das Operatorsymbol wurde entfernt, um die Konsistenz mit anderen mathematischen Bibliotheken zu gewährleisten. Außerdem wurde componentWiseDivision aus den Vektorklassen entfernt und durch Vector.scale(otherVector.inverse()) ersetzt. (I8e1f6, b/399146447)
  • [unscaled] wurde hinzugefügt, um eine Matrix mit einem Skalierungsfaktor von 1 zurückzugeben. (I6381d, b/434928658)
  • :xr:runtime:runtime-guava wird entfernt, da Coroutines.kt durch SuspendtoFutureAdapter ersetzt wurde. (I0cd3c, b/406597902)

Version 1.0.0-alpha05

30. Juli 2025

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

Neue Funktionen

  • HandJointType und TrackingState wurden hinzugefügt. (I55880, b/334645808)
  • Die Konfigurationsimplementierung wurde öffentlich gemacht. (I95860, b/334645808)
  • Die neuen Typen SessionCreateResult und SessionConfigureResult wurden eingeführt. (Icb8cb, b/334645808)
  • Die neue Klasse BoundingBox wurde hinzugefügt, die einen achsenparallelen Begrenzungsrahmen im 3D-Raum darstellt und durch die Eckpunkte mit den minimalen und maximalen Koordinaten definiert wird. (Ic68c5, b/423073468)

API-Änderungen

  • androidx.xr.scenecore.PixelDimensions wurde in androidx.xr.runtime.math.IntSize2d umbenannt und verschoben. androidx.xr.scenecore.Dimensions wurde in androidx.xr.runtime.math.FloatSize3d umbenannt und verschoben. androidx.xr.scenecore.PlaneType wurde in androidx.xr.scenecore.PlaneOrientation umbenannt. androidx.xr.scenecore.PlaneSemantic wurde in androidx.xr.scenecore.PlaneSemanticType umbenannt. (Ifd405, b/416456228)
  • Die Klasse androidx.xr.runtime.FoV wurde entfernt. Verwenden Sie stattdessen androidx.xr.runtime.FieldOfView. (I9ae27)
  • Es wurde eine zusätzliche Überladung für Session.create hinzugefügt, die einen LifecycleOwner für die Sitzung bereitstellen kann. Für den Besitz von Ressourcen muss weiterhin eine Aktivität angegeben werden und der LifecycleOwner muss auf die Aktivität beschränkt sein. (I1690b)
  • FakeRuntimeAnchor.anchorsCreated wurde in anchorsCreatedCount umbenannt (I96df9, b/424441218).
  • Die Werte für *Mode der Konfiguration wurden umbenannt, um ihr Verhalten widerzuspiegeln. (I6d247, b/414648065)
  • Für Projekte, die mit Kotlin 2.0 veröffentlicht wurden, ist KGP 2.0.0 oder höher erforderlich (Idb6b5, b/344563182).
  • APIs im Zusammenhang mit Manifest-Strings wurden von :xr:runtime:runtime nach :xr:runtime:runtime-manifest verschoben. Der Paketname wurde von androidx.xr.runtime in androidx.xr.runtime.manifest geändert. (I610ad, b/418800249)
  • Session.resume(), Session.pause() und Session.destroy() wurden aus der API-Oberfläche entfernt. Die Sitzung ist kein LifecycleOwner mehr. Der Lebenszyklus der Sitzung wird jetzt an den Lebenszyklus der Aktivität angehängt, die in Session.create() übergeben wird. (I28a03)
  • 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)
  • Das Hauptartefakt der Laufzeit (:xr:runtime:runtime) enthält nur asynchrone APIs im Kotlin-Stil. Java-Entwickler können von :xr:runtime:runtime-guava abhängen, um auf kompatible APIs zuzugreifen. (I05d4a, b/426639315)
  • Das Hauptartefakt der Laufzeit (:xr:runtime:runtime) enthält nur asynchrone APIs im Kotlin-Stil. Java-Entwickler können von der Bibliothek xr:runtime:runtime-rxjava3 abhängen, um auf kompatible APIs zuzugreifen. (I64122, b/426639775)
  • Verschieben Sie Coroutines nach :xr:runtime:runtime-guava und Flows nach :xr:runtime:runtime-rxjava3. (I60ae9)
  • Session.create und Session.configure lösen jetzt SecurityException aus, wenn nicht genügend Berechtigungen erteilt wurden, anstatt SessionCreatePermissionsNotGranted oder SessionConfigurePermissionsNotGranted zurückzugeben. (I7c488, b/430651879)

Version 1.0.0-alpha04

7. Mai 2025

androidx.xr.runtime:runtime:1.0.0-alpha04, androidx.xr.runtime:runtime-openxr:1.0.0-alpha04 und androidx.xr.runtime:runtime-testing:1.0.0-alpha04 sind veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.

Neue Funktionen

  • Die Sitzung implementiert jetzt androidx.lifecycle.LifecycleOwner, um die Interoperabilität mit vorhandenen Android-Lebenszyklusparadigmen zu verbessern.
  • Manifest-Strings für Android XR werden hier angegeben und dokumentiert.
  • Es wurden Erweiterungsmethoden für den Rückruf zur räumlichen Sichtbarkeit hinzugefügt, um zu beobachten, wann sich der Szeneninhalt innerhalb oder außerhalb des Sichtfelds des Nutzers bewegt.
  • Es wurde eine Stub-Version von JxrPlatformAdapter (und allen zugehörigen Klassen) hinzugefügt.
  • Die Sitzung wird sowohl in SceneCore als auch in der Laufzeit anstelle der Sitzung in SceneCore verwendet.
  • ActivityPose.hitTest wurde hinzugefügt, um einen hitTest für virtuelle Inhalte zu ermöglichen.
  • Die Angabe mehrerer Laufzeitimplementierungen zur Kompilierzeit wird jetzt unterstützt. Zur Ausführungszeit wird nur eine basierend auf den Funktionen des aktuellen Geräts geladen.
  • Der neue Komponententyp SpatialPointerComponent wurde hinzugefügt, mit dem Clients das für den Pointer gerenderte Symbol angeben oder das Symbol deaktivieren können. Diese Komponente kann derzeit nur an PanelEntity-Instanzen angehängt werden.

API-Änderungen

  • Die Konfigurationsimplementierung wurde öffentlich gemacht. (I95860)
  • HandJointType und TrackingState wurden hinzugefügt. (I55880)
  • Für Projekte, die mit Kotlin 2.0 veröffentlicht wurden, ist KGP 2.0.0 oder höher erforderlich (Idb6b5).
  • Hand.isActive (boolean) wurde in Hand.trackingState geändert. Die OpenXR-Implementierung wurde entsprechend geändert.
  • Die Berechtigungsanforderung android.permission.SCENE_UNDERSTANDING in Session.configure wurde in android.permission.SCENE_UNDERSTANDING_COARSE geändert.
  • LifecycleManager.configure wurde implementiert und übergibt jetzt ein Config-Objekt, das eine Property für jede konfigurierbare Laufzeitfunktion enthält.
  • Session.configure kann jetzt mit einer Config aufgerufen werden, um die verfügbaren Laufzeitfunktionen zu konfigurieren.
  • Session.create unterstützt jetzt die Übergabe eines CoroutineContext anstelle eines CoroutineDispatcher.
  • Session.create unterstützt das Laden von ARCore für Jetpack XR und/oder SceneCore. Mindestens eine muss angegeben werden (Testversionen sind verfügbar).
  • FakePerceptionManager löst eine AnchorInvalidUuidException aus, wenn eine ungültige UUID an Anchor.load und Anchor.unpersist übergeben wird.
  • CoreState ist keine Datenklasse mehr.

Diverse Fehlerkorrekturen

  • Die ProGuard-Konfigurationen der Laufzeit wurden korrigiert.

Version 1.0.0-alpha03

26. Februar 2025

androidx.xr.runtime:runtime:1.0.0-alpha03, androidx.xr.runtime:runtime-openxr:1.0.0-alpha03 und androidx.xr.runtime:runtime-testing:1.0.0-alpha03 wurden 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.runtime:runtime:1.0.0-alpha02, androidx.xr.runtime:runtime-openxr:1.0.0-alpha02 und androidx.xr.runtime:runtime-testing:1.0.0-alpha02 sind veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.

Wichtige Änderungen und Verhaltensänderungen

  • Laufzeitfunktionen von OpenXR, die einen Anker zurückgeben, lösen jetzt AnchorResourcesExhaustedException aus, wenn ein Fehlercode auftritt, der darauf hinweist, dass das Ressourcenlimit von OpenXR erreicht wurde.
  • Für Session.create und Session.resume ist jetzt die Berechtigung android.permission.HAND_TRACKING erforderlich.

Neue Funktionen

  • Unterstützung für das Hand-Tracking wurde hinzugefügt.

Diverse Fehlerkorrekturen

  • Das Erstellen von Ankern ist stabiler, wenn es auf einem Emulator ausgeführt wird.

Version 1.0.0-alpha01

12. Dezember 2024

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

Funktionen der Erstversion

Erste Version der Jetpack XR-Laufzeit. Diese Bibliothek enthält grundlegende Funktionen für die Jetpack XR-Bibliothekssuite. Dazu gehören unter anderem die Erkennung von Funktionen, die Lebenszyklusverwaltung und die Konfiguration. Die Laufzeitbibliothek bietet je nach Ausführungsplattform verschiedene Varianten (z.B. runtime-openxr oder runtime-testing). Außerdem bietet diese Bibliothek grundlegende mathematische Abstraktionen wie Vector3 und Matrix4, die auf der gesamten Jetpack XR-API-Oberfläche verwendet werden.

  • Session: Bietet Ihnen detaillierte Steuerelemente für das XR-System, einschließlich der Entscheidung, wann die Verarbeitung ausgeführt wird und wann nicht, sowie der Gesamtkonfiguration. Es ist auch das Handle, das Sie in allen anderen APIs verwenden, um die zugrunde liegenden Systemfunktionen freizuschalten.

  • Pose: Eine Position in einem beliebigen Koordinatensystem mit einer zugehörigen Position und Ausrichtung. Mit dieser Klasse können Sie die Position von Objekten an ARCore für Jetpack XR und Jetpack SceneCore übermitteln.

Bekannte Probleme

  • configure ist derzeit ein No-Op. In zukünftigen Versionen werden neue Einstellungen hinzugefügt, mit denen Sie das Verhalten der Session steuern können.