2022 年 11 月,面向 AR 的 Google Play 服务将移除已弃用的方法 与 NDK 相机图像和元数据有关。
在受影响版本的 ARCore SDK 可能开始 当用户更新面向 AR 的 Google Play 服务时,应用的行为方式或发生崩溃。
受影响的应用
从 2022 年 11 月开始,当用户进行更新时,您的应用可能会停止运行或崩溃 最新版本的面向 AR 的 Google Play 服务:
- 您的应用是使用受影响的 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 月的更改,对应用进行测试:
- 确保目标设备上安装了面向 AR 的 Play 服务 1.29.0 或更高版本。
将新的
<meta-data>
标记添加为应用的现有<application>
元素的子元素AndroidManifest.xml
个文件 :<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,并引入普适性 API 替代方案。 |
2021 年 2 月 (ARCore SDK 版本 1.23.0) |
从 ARCore SDK 中移除了之前已弃用的 API 签名。 |
2021 年 11 月 | 公布未来因实施待移除而进行的破坏性更改 的受影响 API 数量。 |
2022 年 11 月 |
移除已实现的受影响 API:
“面向 AR 的 Google Play 服务”。 针对使用 ARCore 版本之前版本的应用引入破坏性更改 1.23.0. |