В августе 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 :
32-битные (например,
armeabi-v7a
) и 64-битные (arm64-v8a
) приложения, предназначенные для физических устройств с поддержкой ARCore.32-битные (
x86
) и 64-битные (x86_64
) приложения, работающие внутри эмулятора 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-битных устройств:
Откройте консоль Google Play .
Выберите приложение с поддержкой ARCore.
Разверните активную версию приложения, чтобы убедиться, что платформы Native включают поддержку 64-разрядной версии (
arm64-v8a
).
Обновление вашего приложения для поддержки 64-битных устройств.
Чтобы обновить существующее 32-разрядное приложение с поддержкой ARCore, включив в него 64-разрядные собственные библиотеки:
Обновите свой проект, чтобы использовать последнюю версию ARCore SDK .
Создайте свое приложение и опубликуйте его с помощью консоли Google Play .
Google Play проверит, что ваше приложение соответствует 64-битному требованию Google Play Store, которое ранее вступило в силу 1 августа 2019 года. Чтобы гарантировать, что ваше приложение с поддержкой ARCore включает поддержку 64-битной версии ( arm64-v8a
) для всех 64-битных версий. устройства, независимо от версии Android или уровня API.