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

August 2020 64-bit requirement

In August 2020, Google Play Services for AR (ARCore) will remove support for 32-bit-only apps running on several 64-bit devices. Support for 32-bit apps running on 32-bit devices is unaffected.

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, you must update your app to support 64-bit devices before August 2020.

Apps published after the Google Play 64-bit requirement went into effect on August 1, 2019, and weren't eligible for an exception, should already be 64-bit compliant.

Multi-APK and 64-bit compliance

Compliance with the 64-bit requirement is evaluated at the release level and applies to all APKs or app bundles that are distributed to devices running Android 9 Pie (API level 28) or later.

If your app is unable to meet the 64-bit requirement you may avoid the compliance requirement by choosing to limit distribution of your app to devices running Android Oreo 8.1.0 (API level 27) and earlier by specifying maxSdkVersion 27 in your app's build.gradle file:

android {
    defaultConfig {
        // AR Optional apps must declare minSdkVersion >= 14.
        // AR Required apps must declare minSdkVersion >= 24.
        minSdkVersion 24
        targetSdkVersion 27

        // Do not distribute to devices running Android 9 Pie or later.
        maxSdkVersion 27

        …
    }
    …
}

Understanding ARCore ABI support

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

When you build an ARCore-enabled app, your 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. Starting in August 2020 Google Play Services for AR (ARCore) will stop including 32-bit native libraries on 64-bit devices, at which time existing 32-bit only ARCore-enabled apps will no longer run on 64-bit devices.

32-bit-only ARCore-enabled apps that are not updated by this time 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. Use Release management > App releases to review the app's currently active releases.

  4. Expand the app's active releases to verify that the Native platforms for at least one release 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 64-bit requirement that previously went into effect on August 1, 2019, which also ensures that your ARCore-enabled app will continue to run on 64-bit devices after Google Play Services for AR (ARCore) stops including 32-bit native libraries in August 2020.