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

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

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

受影響的應用程式

自 2022 年 11 月起,當使用者更新至最新版的 Google Play 服務 - AR 適用時,應用程式可能會停止運作或當機:

  1. 您的應用程式使用受影響的 SDK 編譯而成
  2. 您的應用程式使用了下列任一受影響的 API:
如果您的應用程式是以
ARCore SDK 版本編譯...
並會使用受影響的 API... 2022 年 11 月開始的破壞行為
1.19.0 以下版本 Frame.getImageMetadata() 擲回 IllegalArgumentException
1.10.0 以下版本 Frame.acquireCameraImage() 傳回 0x0 大小的圖片。

修正受影響的應用程式

受影響的應用程式可能會在 2022 年 11 月出現服務中斷情形。為解決此問題,請使用最新的 ARCore SDK 重新建構應用程式。您必須至少升級至 ARCore SDK 1.20.0 以上版本。

確認受影響的應用程式已解決

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

  1. 確認目標裝置已安裝 Play 服務 - AR 1.29.0 以上版本。
  2. 新增 <meta-data> 標記,做為應用程式 AndroidManifest.xml 檔案中現有 <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。
更新實作方式以使用替代原生 API。
2021 年 11 月 由於 2022 年 11 月,Google Play 服務中受影響的 API 實作項目即將從 2022 年 11 月移除,因此我們宣布將進行破壞性變更。
2022 年 11 月 從 Google Play 服務 - AR 適用中移除受影響 API 的實作。
針對使用 ARCore 1.20.0 以下版本的應用程式,導入破壞性變更。