ARCore 64 位要求

2020 年 8 月,面向 AR 的 Google Play 服务 (ARCore) 不再支持在某些 64 位设备上仅支持 32 位架构。在即将推出的 ARCore 版本中,我们可能会取消对其余 64 位设备上仅支持 32 位 ARCore 的应用的支持,恕不另行通知。在 32 位设备上运行仅支持 32 位的 ARCore 的应用不受影响,并且会继续获得支持。

如果您发布了仅限 32 位架构(例如,armeabi-v7a) 版本,但未针对 64 位设备发布对应的 64 位 (arm64-v8a) 版本,那么您必须将应用更新为适用于 64 位设备的兼容 64 位版本。

如果支持 32 位架构的应用未更新,并且仅支持 32 位架构,则无法创建 ARCore 会话,并且在尝试在其受影响的 64 位设备上启动增强现实 (AR) 会话时,可能会崩溃

如果您在应用的 AndroidManifest.xml 中设置 android:use32bitAbi="true" 属性,应用将仅使用 32 位库。您的应用中的所有 AR 体验都将尝试在 32 位模式下使用 ARCore。不过,在某些 64 位设备上,32 位库不会出现在面向 AR 的 Google Play 服务服务中。如果没有这些库,您的应用将无法创建 ARCore 会话,并且在尝试在这些 64 位设备上启动增强现实 (AR) 会话时,应用可能会崩溃。这会影响 WebView 组件内的原生 AR 体验和基于 WebXR 的 AR 体验。

Google Play 商店要求提供 64 位版本

上一部分中所述的 ARCore 64 位要求适用于所有 64 位设备,无论 Android 版本和 API 级别如何。此要求是单独的,与 2019 年 8 月 1 日生效的 Google Play 64 位要求无关,后者在应用版本级别进行评估,仅适用于分发给搭载 Android 9 Pie(API 级别 28)或更高版本的设备的 APK 或 app bundle。

了解 ARCore ABI 支持

ARCore 允许您构建支持以下 Android ABI 的应用:

当您构建支持 ARCore 的应用时,Android 构建系统会针对您的应用目标的 Android ABI 包含一个或多个 ARCore 原生库 (lib/…/libarcore_sdk*.so)。

仅支持 32 位的 ARCore 应用以前可以在 32 位和 64 位设备上运行。2020 年 8 月,面向 AR 的 Google Play 服务 (ARCore) 停止在某些 64 位设备上包含 32 位原生库,自此之后,仅支持 32 位 ARCore 的应用将无法在受影响的 64 位设备上运行。在未来的版本中,可能也会取消对仅支持 32 位 ARCore 的应用的支持,而无需通知其余的 64 位设备。

如果支持 32 位架构的应用未经过更新,并且仅支持 32 位架构的应用,则无法创建会话,并且在受影响的 64 位设备上尝试启动增强现实 (AR) 会话时可能会崩溃。具体而言:

ARCore SDK 会话创建失败的详情
ARCore SDK for Android (NDK) ArSession_createArSession_createWithFeatures 将返回 AR_ERROR_FATAL
ARCore SDK for Android (Java) 会话构造函数 Session(Context)Session(Context, Set<Session.Feature>) 会抛出 FatalException
ARCore SDK for Unity 当您启用 ARCoreSession 组件(通常位于 ARCore 设备预制件上)后,ARCore 将无法创建 ARCore 会话并且 Session.Status 将为 SessionStatus.FatalError
AR Foundation (Unity)
+ ARCore XR 插件
由于在尝试加载不存在的 32 位 ARCore 原生库时主线程发生崩溃,应用将停止渲染(黑屏)。

确定您的应用是否必须更新

如需检查您发布的应用是否包含支持 64 位设备所需的原生 ARCore 库,请执行以下操作:

  1. 打开 Google Play 管理中心

  2. 选择您的支持 ARCore 的应用。

  3. 展开应用的活跃版本,验证原生平台是否包含 64 位 (arm64-v8a) 支持。

更新您的应用以支持 64 位设备

如需更新现有仅支持 32 位 ARCore 的应用以包含 64 位原生库,请执行以下操作:

  1. 将您的项目更新为使用最新的 ARCore SDK

  2. 使用 Google Play 管理中心构建并发布应用。

Google Play 将验证您的应用是否符合之前于 2019 年 8 月 1 日生效的 Google Play 商店 64 位要求。为了确保支持 ARCore 的应用为所有 64 位设备提供 64 位 (arm64-v8a) 支持(无论 Android 版本或 API 级别如何)。