2022 年 11 月已淘汰為 Android NDK (C) 適用的 ARCore SDK 移除相機方法

2022 年 11 月,Google Play 服務 - AR 適用將移除與 NDK 相機圖像和中繼資料相關的已淘汰方法。

在受影響的 ARCore SDK 版本中使用這些方法的應用程式,可能會在使用者更新 Google Play 服務 - AR 適用時,開始出現異常行為或停止運作。

受影響的應用程式

自 2022 年 11 月起,如果符合下列情況,當使用者更新至最新版的 Google Play 服務 - AR 適用,您的應用程式可能會停止運作或當機:

  1. 您的應用程式是使用受影響的 SDK 編譯
  2. 您的應用程式會使用下列任一受影響的 API:
如果您的應用程式是使用
ARCore SDK 版本編譯的…
並使用受影響的 API… 自 2022 年 11 月起的異動行為
1.22.0 以下版本 ArImage_getNdkImage()
(已在 ARCore SDK 1.23.0 中移除)
在產生的 AImage 結構體中傳回 NULL
1.22.0 以下版本 ArImage_getNdkCameraMetadata()
(已在 ARCore SDK 1.23.0 中移除)
在產生的 ACameraMetadata 結構體中傳回 NULL

修正受影響的應用程式

受影響的應用程式可能會在 2022 年 11 月發生中斷情形。為緩解此問題,請針對受影響的方法使用即時替換:

確認受影響的應用程式已修正

請在應用程式的 AndroidManifest.xml 中加入特殊 meta-data 項目,提前模擬 2022 年 11 月的變更,以便測試應用程式:

  1. 確認目標裝置已安裝 1.29.0 以上版本的 Play 服務 - AR 適用
  2. 在應用程式的 AndroidManifest.xml 檔案中,將新的 <meta-data> 標記新增為現有 <application> 元素的子項:

    <application …>
        <!--
           Simulate the November 2022 changes in advance.
           IMPORTANT: Remove this tag when testing is completed.
           Do not include this tag in published versions of your app.
      -->
      <meta-data android:name="com.google.ar.core.session_settings"
                 android:value="camera_stack_option,unified_mono" />
    </application>
    
  3. 測試應用程式,確認所有 ARCore 功能都能正常運作。

  4. 測試完成後,請移除 <meta-data> 標記。如果在已發布的應用程式中保留這個標記,日後可能會發生非預期的行為。

如果應用程式正常運作,表示應用程式已準備好因應 2022 年 11 月的異動。

時間軸

期間 活動
2020 年 11 月
(ARCore SDK 1.20.0 版)
淘汰受影響的 API,並引入替代方案。
2021 年 2 月
(ARCore SDK 版本 1.23.0)
從 ARCore SDK 中移除先前已淘汰的 API 簽名。
2021 年 11 月 由於 Google Play 服務 - AR 適用版本將於 2022 年 11 月移除受影響的 API 實作,因此將另行宣布日後的重大異動。
2022 年 11 月 從 Google Play 服務 - AR 適用中移除受影響 API 的實作項目。
針對使用 1.23.0 以下版本 ARCore 的應用程式,引入破壞性變更。