Jetpack XR 向け ARCore

認識機能を使用して、デジタル コンテンツを現実世界に取り込みます。
最新の更新 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
2026 年 9 月 9 日 - 1.0.0-rc01 - -

依存関係の宣言

Jetpack XR 用 ARCore への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。

アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。

Groovy

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-rc01"
}

Kotlin

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

依存関係について詳しくは、ビルド依存関係の追加をご覧ください。

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

バージョン 1.0

バージョン 1.0.0-rc01

2026 年 9 月 9 日

androidx.xr.arcore:arcore-*:1.0.0-rc01 がリリースされました。バージョン 1.0.0-rc01 には、これらの commit が含まれています。

バージョン 1.0.0-beta02

2026 年 8 月 12 日

androidx.xr.arcore:arcore-*:1.0.0-beta02 がリリースされました。バージョン 1.0.0-beta02 にはこれらの commit が含まれています。

バグの修正

  • OpenXR アンカーの永続性における同時実行の問題を修正(I15c8b)
  • デバッグ用に、より多くのクラスで toString() を実装しました。(I587e8)

バージョン 1.0.0-beta01

2026 年 7 月 15 日

androidx.xr.arcore:arcore-*:1.0.0-beta01 がリリースされました。バージョン 1.0.0-beta01 にはこれらの commit が含まれています。

API の変更

  • サイズ変更可能な修飾子を更新し、2 つの修飾子の代わりに ResizePolicy を使用するようにしました(I7fb0f、b/496257436、b/519672992)
  • movePolicy パラメータを含む移動可能なオーバーロードを追加し、transformingMovable と movable を非推奨にしました(Ic88c1、b/481781189)
  • 公開 API サーフェスから TrackingState.TRACKING_DEGRADED を削除し、代わりにマップのランタイムの劣化状態を PAUSED にマッピングしました。文字列変換とランタイム変換で int 値ではなく列挙型を使用するように TrackingState を更新します。(I3eb5b、b/524326338)
  • Session.create を suspend 関数に変換しました。(I5d27f)
  • ProjectedPermissionsResultContract を非推奨にしました(I141d5、b/515699436)
  • AnchorEntity を AnchorSpace と呼ぶように更新しました(Ifa95e、b/513619219)

バージョン 1.0.0-alpha15

2026 年 6 月 17 日

androidx.xr.arcore:arcore-*:1.0.0-alpha15 がリリースされました。バージョン 1.0.0-alpha15 に含まれる commit については、こちらをご覧ください。

API の変更

  • HitResult.createAnchor を削除しました。結果のトラッキング可能なオブジェクトが Anchorable の場合、デベロッパーは、Anchorable の createAnchor 関数にヒット位置を指定することで、HitResult を表すアンカーを作成できます。(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)
  • QrCode API を追加しました(Ia0bbe)

バージョン 1.0.0-alpha14

2026 年 5 月 19 日

androidx.xr.arcore:arcore-*:1.0.0-alpha14 がリリースされました。バージョン 1.0.0-alpha14 に含まれる commit については、こちらをご覧ください。

API の変更

  • GeospatialMode.VPS_AND_GPS を非推奨にして GeospatialMode.SPATIAL を導入し、IMU と GPS のみを使用する新しい低電力トラッキング モード GeospatialMode.INERTIAL を導入します。(I1e6cd)
  • カスタム アンカー例外クラス: AnchorInvalidUuidException、AnchorNotAuthorizedException、AnchorUnsupportedLocationException、AnchorRuntimeFailureException、AnchorUnsupportedObjectException は RuntimeException インスタンスになり、チェックの対象外となりました。(I9356e)
  • TestArDevice、TestAugmentableObject、TestDepthMap、TestEye、TestFace、TestGeospatial、TestHand、TestPlane、TestRenderViewpoint、TestTrackable を含む ArCoreTestRule API を追加しました(I0ad3c)
  • AnchorLoadInvalidUuid、AnchorCreateUnsupportedObject、AnchorCreateUnsupportedLocation、AnchorCreateNotAuthorized を削除します。これらのエラーはすべて、ランタイムの例外になりました。AnchorCreateIllegalState を削除します。ほとんどの場合、これは AnchorCreateTrackingUnavailable に置き換えられています。AnchorException と、その派生クラスである AnchorInvalidUuidException、AnchorNotAuthorizedException、AnchorUnsupportedLocationException、AnchorRuntimeFailureException、AnchorUnsupportedObjectException を追加します。(I4c4dd)

外部からの協力

  • カスタム マーカー トラッキング用の AugmentedImage API を追加しました(I0cf09)

バージョン 1.0.0-alpha13

2026 年 5 月 6 日

androidx.xr.arcore:arcore-*:1.0.0-alpha13 がリリースされました。バージョン 1.0.0-alpha13 に含まれる commit については、こちらをご覧ください。

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)
  • NativeData API を xr:runtime:runtime ライブラリに移動しました。(I87954、b/494251500)
  • Session.create と Session.configure が非網羅的になり、when ステートメントで else 句が必要になりました。(I9885e、b/495805998、b/495805998)
  • androidx.xr.runtime.FieldOfView が非推奨になりました。代わりに androidx.xr.runtime.math.FieldOfView を使用してください(Ia01a0、b/480233045)
  • Orbiter が、位置、オフセット、offsetType、配置、高度の代わりに OrbiterAnchorPoint + VolumeOffset または OrbiterPoseProvider を使用するように変更されました。また、shouldRenderInNonSpatial パラメータも削除しました。デベロッパーが非空間でオービターをレンダリングしたくない場合は、オービターを if ステートメントでラップし、SpatialCapabilities を確認する必要があります。(I9fbb3、b/462428503)
  • 移動可能な修飾子を追加しました。これらの修飾子は、現時点では SpatialPanels と SpatialExternalSurface でうまく機能します。SpatialGltfModels でもまもなくサポートされる予定です。ただし、すべての SubspaceComposables で適切にサポートされるようにする予定です。(I9a3cd、b/479530787、b/478935063、b/478935063)
  • デベロッパーは ArDevice.state Flow をモニタリングして 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 に変更(非推奨のフォールバック付き)、3DoF トラッキング用に INERTIAL_LAST_KNOWN を追加、TRACKING_DEGRADED を TrackingState に追加しました。(Ie661c、b/445466590)
  • GroupEntity が非推奨になりました。基本エンティティ機能のみを持つエンティティを取得するには、Entity.create を呼び出します。これにより、エンティティ インターフェースが返されます。(I4c450、b/473867483)
  • XrLog API を追加しました。JetpackXR でロギングを有効にするには、XrLog.isEnabled を true に設定し、XrLog.Level を使用してログレベルを設定します。(I76a1f、b/463460895、b/487378441)

バグの修正

  • openxr デバイスにデバイス トラッキング状態のサポートを追加します。(I91485、b/445466590)

バージョン 1.0.0-alpha12

2026 年 3 月 25 日

androidx.xr.arcore:arcore-*:1.0.0-alpha12 がリリースされました。バージョン 1.0.0-alpha12 に含まれる commit については、こちらをご覧ください。

API の変更

  • Config.augmentedObjectCategories を List から Set に変更しました。(I25a64、b/487376359)
  • androidx.xr.arcore.Eye 型と androidx.xr.arcore.Hand 型。(I42438、b/449032900)
  • リソース スコープ設定用に Android コンテキストを渡せるように、Session.create オーバーロードを追加しました。(I7d3fe、b/415805990、b/477386334)
  • FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT を FakeRuntimeAnchor.anchorResourceLimit に変更します。(I90841、b/431992235)
  • TiltGesture API を試験運用版にしました。今後変更または削除される可能性があります。この API を使用するには、@ExperimentalGesturesApi(Ic9858)にオプトインします。
  • Config で AugmentedObject トラッキングのカテゴリを設定する機能を追加しました(I1f6e4、b/480220930)

バグの修正

  • PerceptionRuntimeFactory の実際の場所で META-INF/services/ ファイルを更新して、Chrome のビルドを修正しました。(I7a801、b/481288291)

バージョン 1.0.0-alpha11

2026 年 2 月 25 日

androidx.xr.arcore:arcore-*:1.0.0-alpha11 がリリースされました。バージョン 1.0.0-alpha11 に含まれる commit については、こちらをご覧ください。

バージョン 1.0.0-alpha10

2026 年 1 月 28 日

androidx.xr.arcore:arcore-*:1.0.0-alpha10 がリリースされました。バージョン 1.0.0-alpha10 に含まれる commit については、こちらをご覧ください。

新機能

  • TiltGesture API を導入し、デバイスの傾き(上/下)の状態を移行の進行状況とともに安定して検出するためのリアクティブな Flow を提供します。(Ic269f、b/448152779)
  • Jetpack XR 向け ARCore で XR ランタイム ロギング メカニズムが使用されるようになりました。詳しくは、androidx.xr.runtime.Log をご覧ください。(l52735、b/448697662)

API の変更

  • Geospatial.createPoseFromGeospatialPose が OpenXR 対応デバイスで動作するようになりました。(l362c6)

バージョン 1.0.0-alpha09

2025 年 12 月 3 日

androidx.xr.arcore:arcore-*:1.0.0-alpha09 がリリースされました。バージョン 1.0.0-alpha09 に含まれる commit については、こちらをご覧ください。

バージョン 1.0.0-alpha08

2025 年 11 月 19 日

androidx.xr.arcore:arcore-*:1.0.0-alpha08 がリリースされました。バージョン 1.0.0-alpha08 に含まれる commit については、こちらをご覧ください。

新機能

  • Jetpack XR の ARCore が、Google Play 開発者サービス(AR)を利用できるデバイスをサポートするようになりました。
  • VPS の可用性とポーズ変換のための Geospatial API を追加しました(I144dc)

バージョン 1.0.0-alpha07

2025 年 10 月 22 日

androidx.xr.arcore:arcore-*:1.0.0-alpha07 がリリースされました。バージョン 1.0.0-alpha07 に含まれる commit については、こちらをご覧ください。

バグの修正

  • :xr:arcore:arcore-openxr が :xr:arcore:arcore の実装依存関係として追加されました(I47315、b/446999229)

バージョン 1.0.0-alpha06

2025 年 9 月 24 日

androidx.xr.arcore:arcore-*:1.0.0-alpha06 がリリースされました。バージョン 1.0.0-alpha06 に含まれる commit については、こちらをご覧ください。

API の変更

  • ARCore のテストサポートが xr:arcore:arcore-testing モジュールに移行しました。(I25469)
  • レンダリング目的でアプリケーションがデバイスのポーズとディスプレイ構成を取得できるように、ArDevice と RenderViewpoint を追加しました。(Ib7e3f)
  • HAND_JOINT_TYPE_ 接頭辞を使用して HandJointType 列挙型の名前を変更します。(I3f7cd)
  • HandJointType が xr:runtime:runtime から xr:arcore:arcore に移動しました。(Iadb9c、b/409058039)
  • Hand.State は、パフォーマンス重視のアプリケーションに簡単にアクセスできる形式で、関節のポーズを含む java.nio.FloatBuffer を公開するようになりました。(I55e27)

バージョン 1.0.0-alpha05

2025 年 7 月 30 日

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 に含まれる commit については、こちらをご覧ください。

新機能

  • デベロッパーがハンドサイド情報(I270bd)を取得できるように getPrimaryHandSide を追加
  • 地理空間チェック VPS の可用性 API を追加(I58573)
  • checkVpsAvailability 用の ARCore API を追加(Idbded)
  • Java デベロッパーが使用できるように、:xr:arcore:arcore-rxjava3 に stateFlowable 拡張関数を追加しました。(I083aa、b/427247794)

API の変更

  • 動作を反映させるため、構成 *Mode 値の名前を変更しました。(I6d247、b/414648065)
  • メインの ARCore アーティファクト(xr:arcore:arcore)には、Kotlin スタイルの非同期 API のみが含まれます。Java デベロッパーは、xr:arcore:arcore-rxjava3 ライブラリに依存して互換性のある API にアクセスできます。(Ia525e、b/422794329)
  • メインの ARCore アーティファクト(xr:scenecore:scenecore)には、Kotlin スタイルの非同期 API のみが含まれます。Java デベロッパーは、xr:arcore:arcore-guava ライブラリに依存して互換性のある API にアクセスできます。(Iffcb4、b/422773524)
  • Java デベロッパーが使用できるように、AnchorGuava に Anchor.persistAsync() を追加しました。(I4af1c、b/425984631)
  • Java デベロッパーが使用できるように EarthGuava に Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) を追加しました。(I66357、b/425992992)
  • Java デベロッパーは、GltfModel.kt の GltfModel.createAsync の拡張関数を使用します。GltfModel の非同期関数が削除されます。(I0af60)
  • このライブラリは、型使用である JSpecify nullness アノテーションを使用するようになりました。Kotlin デベロッパーは、次のコンパイラ引数を使用して、正しい使用法を適用する必要があります。-Xjspecify-annotations=strict(これは Kotlin コンパイラのバージョン 2.1.0 以降のデフォルトです)(Ia8420、b/326456246)
  • Java デベロッパーが使用できるように、:xr:arcore:arcore-rxjava3 に subscribeAsFlowable 拡張関数を追加しました。(Id3e49、b/427277298)

バージョン 1.0.0-alpha04

2025 年 5 月 7 日

androidx.xr.arcore:arcore:1.0.0-alpha04 がリリースされました。バージョン 1.0.0-alpha04 に含まれる commit については、こちらをご覧ください。

API の変更

  • Kotlin 2.0 でリリースされたプロジェクトを使用するには、KGP 2.0.0 以降が必要です。(Idb6b5)
  • TrackingState と HandJointType が ARCore から Runtime に移動しました。
  • Hand.State.isActive (boolean) が Hand.State.trackingState (androidx.xr.runtime.TrackingState) に変更されました。
  • UUID が無効な場合、Anchor.load は Anchor.AnchorLoadInvalidUuid を返します。

バージョン 1.0.0-alpha03

2025 年 2 月 26 日

androidx.xr.arcore:arcore:1.0.0-alpha03 がリリースされました。前回のアルファ版からの大きな変更はありません。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください。

バージョン 1.0.0-alpha02

2025 年 2 月 12 日

androidx.xr.arcore:arcore:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください。

新機能

  • ハンド トラッキングのサポートを追加しました。トラッキング情報にアクセスするには、Hand.left と Hand.right を使用します。
  • アンカーを生成する API(Anchor.create、Anchor.load、Plane.createAnchor)は、すべて AnchorCreateResult を返し、AnchorCreateResourcesExhausted を適切に実装するようになりました。

バグの修正

  • Anchor.detach が、セッション更新スレッドとの競合状態が原因で致命的なクラッシュを引き起こすことがなくなりました。
  • エミュレータで実行すると Anchor.create がより安定する

バージョン 1.0.0-alpha01

2024 年 12 月 12 日

androidx.xr.arcore:arcore-* 1.0.0-alpha01 がリリースされました。

初回リリースの機能

既存の ARCore ライブラリに触発された ARCore for Jetpack XR ライブラリは、デジタル コンテンツと現実世界を融合する機能を提供します。このライブラリには、モーション トラッキング、永続アンカー、ヒットテスト、セマンティック ラベリング(床、壁、卓上など)による平面識別が含まれています。Jetpack XR で ARCore を使用する方法について詳しくは、デベロッパー ガイドをご覧ください。

  • Session: ARCore for Jetpack XR は、Jetpack XR Runtime を内部で使用して機能を強化しています。Session を使用してほとんどの ARCore for Jetpack XR API を操作するため、ドキュメントをご覧ください。

  • Plane: プレーンを使用して周囲の世界を理解します。各プレーンには、セマンティクスを記述する Label があります。subscribe を使用して検出された最新の飛行機に関する通知を受け取ったり、state を使用して特定の飛行機の変更に関する通知を受け取ったりできます。

  • Anchor: 仮想オブジェクトと現実世界の場所の間のリンク。アンカーは、空間内の特定の場所(create を使用)または Trackable(createAnchor を使用)にアタッチできます。

    • アンカーはセッション間で再利用できます。persist を使用して保存し、getPersistedAnchorUuids を使用して列挙し、load を使用して取得できます。使用しなくなった場合は、必ず unpersist してください。

    • アンカーは、Jetpack XR 用 ARCore と Jetpack SceneCore の間で相互運用可能です。アンカーを使用して AnchorEntity を作成できます。また、既存の AnchorEntity がある場合は、getAnchor を使用してそのバッキング アンカーを取得できます。

    • hitTest を使用して自然なユーザー インタラクションを提供します。ヒットテストでは、Ray を使用して、どのコンテンツと交差するかを判断し、その位置から Anchor を作成します。InputEvent から hitTest を実行することを検討してください。

既知の問題

  • unpersist の呼び出しと、getPersistedAnchorUuids から返される結果から UUID が削除されるまでに遅延が生じる可能性があります。

  • create は、新しいアンカーを返すのに十分なリソースがシステムにあるかどうかを検証しません。アンカーを過剰に作成すると、クラッシュが発生する可能性があります。

  • 以前に永続化され、永続化解除されたアンカーを永続化することは、現在サポートされていません。

  • エミュレータでの使用はサポートされていますが、実際のデバイスで実行する場合ほど動作が安定しない可能性があります。特に、create の呼び出しがネイティブ コード エラーで失敗し、アクティビティが直ちに終了する可能性があります。

  • 特定の状況では、「Anchor was not persisted」というメッセージとともに persist を呼び出すと、RuntimeException が誤ってスローされることがあります。そのような状況でも、関数は成功し、アンカーは保持されます。回避策として、persist の呼び出しを try ブロックでラップすることをおすすめします。