2022 年 11 月,Google Play 服務 - AR 適用將移除與 NDK 相機圖像和中繼資料相關的已淘汰方法。
在受影響的 ARCore SDK 版本中使用這些方法的應用程式,可能會在使用者更新 Google Play 服務 - AR 適用時,開始出現異常行為或停止運作。
受影響的應用程式
自 2022 年 11 月起,如果符合下列情況,當使用者更新至最新版的 Google Play 服務 - AR 適用,您的應用程式可能會停止運作或當機:
- 您的應用程式是使用受影響的 SDK 編譯
- 您的應用程式會使用下列任一受影響的 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 月發生中斷情形。為緩解此問題,請針對受影響的方法使用即時替換:
ArImage_getNdkImage()
和AImage_*
方法:請使用ArImage
中的對應方法。例如:ArImage_getNdkCameraMetadata()
:請改用ArImageMetadata_getConstEntry()
確認受影響的應用程式已修正
請在應用程式的 AndroidManifest.xml
中加入特殊 meta-data
項目,提前模擬 2022 年 11 月的變更,以便測試應用程式:
- 確認目標裝置已安裝 1.29.0 以上版本的 Play 服務 - AR 適用。
在應用程式的
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>
測試應用程式,確認所有 ARCore 功能都能正常運作。
測試完成後,請移除
<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 的應用程式,引入破壞性變更。 |