Google is committed to advancing racial equity for Black communities. See how.

ARCore 64-bit requirement

In August 2020, Google Play Services for AR (ARCore) removed support for 32-bit-only apps on some 64-bit devices. Support for 32-bit-only ARCore enabled apps on the remaining 64-bit devices may be removed without notice in an upcoming ARCore release. 32-bit-only ARCore enabled apps running on 32-bit devices are unaffected and continue to be supported.

If you published a 32-bit-only (e.g., armeabi-v7a) version of your ARCore-enabled app without publishing a corresponding 64-bit (arm64-v8a) version for 64-bit devices, you must update your app with a compatible 64-bit version for 64-bit devices.

32-bit-only ARCore-enabled apps that aren't updated will fail to create an ARCore session and might crash when attempting to start an augmented reality (AR) session on affected 64-bit devices.

Google Play Store 64-bit requirement

The ARCore 64-bit requirement described in the preceding section applies to all 64-bit devices, regardless of Android version and API level. This requirement is separate and not related to the Google Play 64-bit requirement that went into effect on August 1, 2019, which is evaluated at the app release level and applies only to APKs or app bundles that are distributed to devices running Android 9 Pie (API level 28) or later.

Understanding ARCore ABI support

ARCore lets you build apps that support the following Android ABIs:

When you build an ARCore-enabled app, the Android build system includes one or more ARCore native libraries (lib/…/libarcore_sdk*.so) for the Android ABIs targeted by your app.

32-bit-only ARCore-enabled apps were previously able to run on both 32-bit and 64-bit devices. In August 2020 Google Play Services for AR (ARCore) stopped including 32-bit native libraries on some 64-bit devices, at which time 32-bit only ARCore-enabled apps were no longer able to run on affected 64-bit devices. In a future release, support for 32-bit-only ARCore-enabled apps may also be removed without notice from the remaining 64-bit devices.

32-bit-only ARCore-enabled apps that aren't updated will fail to create a session and might crash when attempting to start an augmented reality (AR) session on affected 64-bit devices, specifically:

ARCore SDK Session creation failure details
ARCore SDK for Android (NDK) ArSession_create and ArSession_createWithFeatures will return AR_ERROR_FATAL.
ARCore SDK for Android (Java) The Session constructors, Session(Context) and Session(Context, Set<Session.Feature>), will throw a FatalException.
ARCore SDK for Unity When you enable the ARCoreSession component, which is usually found on the ARCore Device prefab, ARCore will fail to create an ARCore session and Session.Status will be SessionStatus.FatalError.
AR Foundation (Unity)
+ ARCore XR Plugin
The app will stop rendering (black screen) when the app tries to start an AR session, due to a crash on the main thread while trying to load non-existent 32-bit ARCore native libraries.

Determining whether your app must be updated

To check whether your published app includes the required native ARCore libraries to support 64-bit devices:

  1. Open the Google Play Console.

  2. Select your ARCore-enabled app.

  3. Expand the app's active release to verify that the Native platforms includes 64-bit (arm64-v8a) support.

Updating your app to support 64-bit devices

To update an existing 32-bit-only ARCore-enabled app to include 64-bit native libraries:

  1. Update your project to use the latest ARCore SDK.

  2. Build your app and publish it using the Google Play Console.

Google Play will verify that your app meets the Google Play Store 64-bit requirement that previously went into effect on August 1, 2019. To ensure that your ARCore-enabled app includes 64-bit (arm64-v8a) support for all 64-bit devices, regardless of Android version or API level.