Требование 64-битной версии ARCore

В августе 2020 года сервисы Google Play для AR (ARCore) прекратили поддержку только 32-битных приложений на некоторых 64-битных устройствах. Поддержка только 32-битных приложений с поддержкой ARCore на остальных 64-битных устройствах может быть удалена без предварительного уведомления в следующем выпуске ARCore. Только 32-разрядные приложения с поддержкой ARCore, работающие на 32-разрядных устройствах, не затронуты и продолжают поддерживаться.

Если вы опубликовали только 32-разрядную версию (например, armeabi-v7a ) вашего приложения с поддержкой ARCore, не публикуя соответствующую 64-разрядную версию ( arm64-v8a ) для 64-разрядных устройств, вам необходимо обновить свое приложение с помощью совместимой версии. 64-битная версия для 64-битных устройств.

Необновленные 32-разрядные приложения с поддержкой ARCore не смогут создать сеанс ARCore и могут привести к сбою при попытке запустить сеанс дополненной реальности (AR) на затронутых 64-разрядных устройствах .

Если вы установите атрибут android:use32bitAbi="true" в AndroidManifest.xml вашего приложения, ваше приложение будет использовать только 32-битные библиотеки. Любые возможности дополненной реальности в вашем приложении будут пытаться использовать ARCore в 32-битном режиме. Однако 32-битные библиотеки не будут присутствовать в сервисе Google Play Services для AR на некоторых 64-битных устройствах. Без этих библиотек ваше приложение не сможет создать сеанс ARCore и может завершиться сбоем при попытке запустить сеанс дополненной реальности (AR) на затронутых 64-разрядных устройствах. Это влияет как на собственные возможности AR, так и на возможности AR на основе WebXR внутри компонента WebView.

Требования к 64-разрядной версии Google Play Store

Требование к 64-разрядной версии ARCore, описанное в предыдущем разделе, применяется ко всем 64-разрядным устройствам, независимо от версии Android и уровня API. Это требование является отдельным и не связано с требованием Google Play к 64-разрядной версии , вступившим в силу 1 августа 2019 г., которое оценивается на уровне выпуска приложения и применяется только к APK-файлам или пакетам приложений, которые распространяются на устройства под управлением Android 9 Pie. (уровень API 28) или более поздней версии.

Понимание поддержки ARCore ABI

ARCore позволяет создавать приложения, поддерживающие следующие ABI Android :

Когда вы создаете приложение с поддержкой ARCore, система сборки Android включает одну или несколько собственных библиотек ARCore ( lib/…/libarcore_sdk*.so ) для ABI Android, предназначенных для вашего приложения.

Только 32-битные приложения с поддержкой ARCore ранее могли работать как на 32-битных, так и на 64-битных устройствах. В августе 2020 года Сервисы Google Play для AR (ARCore) прекратили включать 32-битные собственные библиотеки на некоторые 64-битные устройства, после чего 32-битные приложения с поддержкой ARCore больше не могли работать на затронутых 64-битных устройствах. В будущем выпуске поддержка только 32-битных приложений с поддержкой ARCore также может быть удалена без предварительного уведомления с остальных 64-битных устройств.

Необновленные 32-разрядные приложения с поддержкой ARCore не смогут создать сеанс и могут привести к сбою при попытке запустить сеанс дополненной реальности (AR) на затронутых 64-разрядных устройствах , а именно:

ARCore SDK Подробности об ошибке создания сеанса
ARCore SDK для Android (NDK) ArSession_create и ArSession_createWithFeatures вернут AR_ERROR_FATAL .
ARCore SDK для Android (Java) Конструкторы сеанса Session(Context) и Session(Context, Set<Session.Feature>) вызовут FatalException .
ARCore SDK для Unity Когда вы включаете компонент ARCoreSession , который обычно находится в префабе устройства ARCore , ARCore не сможет создать сеанс ARCore, а Session.Status будет SessionStatus.FatalError .
Фонд AR (Единство)
+ Плагин ARCore XR
Приложение прекратит рендеринг (черный экран), когда приложение попытается запустить сеанс AR, из-за сбоя в основном потоке при попытке загрузить несуществующие 32-битные собственные библиотеки ARCore.

Определение необходимости обновления вашего приложения

Чтобы проверить, включает ли ваше опубликованное приложение необходимые собственные библиотеки ARCore для поддержки 64-битных устройств:

  1. Откройте консоль Google Play .

  2. Выберите приложение с поддержкой ARCore.

  3. Разверните активную версию приложения, чтобы убедиться, что платформы Native включают поддержку 64-разрядной версии ( arm64-v8a ).

Обновление вашего приложения для поддержки 64-битных устройств.

Чтобы обновить существующее 32-разрядное приложение с поддержкой ARCore, включив в него 64-разрядные собственные библиотеки:

  1. Обновите свой проект, чтобы использовать последнюю версию ARCore SDK .

  2. Создайте свое приложение и опубликуйте его с помощью консоли Google Play .

Google Play проверит, что ваше приложение соответствует 64-битному требованию Google Play Store, которое ранее вступило в силу 1 августа 2019 года. Чтобы гарантировать, что ваше приложение с поддержкой ARCore включает поддержку 64-битной версии ( arm64-v8a ) для всех 64-битных версий. устройства, независимо от версии Android или уровня API.