En août 2020, les services Google Play pour la RA (ARCore) ont supprimé la compatibilité des applications 32 bits uniquement sur certains appareils 64 bits. La prise en charge des applications ARCore 32 bits uniquement sur les appareils 64 bits restants peut être supprimée sans préavis dans une prochaine version d'ARCore. Les applications 32 bits uniquement compatibles avec ARCore exécutées sur des appareils 32 bits ne sont pas affectées et continuent d'être compatibles.
Si vous avez publié une version 32 bits uniquement (par exemple, armeabi-v7a
) de votre application compatible ARCore sans publier de version 64 bits (arm64-v8a
) correspondante pour les appareils 64 bits, vous devez mettre à jour votre application avec une version 64 bits compatible pour les appareils 64 bits.
Les applications ARCore 32 bits uniquement qui ne sont pas mises à jour ne pourront pas créer de session ARCore et risquent de planter lorsque vous tentez de démarrer une session de réalité augmentée (RA) sur les appareils 64 bits concernés.
Si vous définissez l'attribut android:use32bitAbi="true"
dans le fichier AndroidManifest.xml
de votre application, celle-ci n'utilisera que des bibliothèques 32 bits. Toutes les expériences de RA de votre application tenteront d'utiliser ARCore en mode 32 bits. Toutefois, les bibliothèques 32 bits ne seront pas présentes dans le service Services Google Play pour la RA sur certains appareils 64 bits. Sans ces bibliothèques, votre application ne parvient pas à créer de session ARCore et peut planter lorsqu'elle tente de démarrer une session en réalité augmentée (RA) sur les appareils 64 bits concernés. Cela affecte à la fois les expériences de RA natives et celles basées sur WebXR dans un composant WebView.
Configuration requise pour le Google Play Store : 64 bits
L'exigence ARCore 64 bits décrite dans la section précédente s'applique à tous les appareils 64 bits, quels que soient la version d'Android et le niveau d'API. Cette exigence est distincte et n'est pas liée à l'exigence 64 bits de Google Play, qui est entrée en vigueur le 1er août 2019, et qui est évaluée au niveau de la version de l'application. Elle ne s'applique qu'aux APK ou aux app bundles distribués aux appareils équipés d'Android 9 Pie (niveau d'API 28) ou version ultérieure.
Comprendre la compatibilité avec les ABI ARCore
ARCore vous permet de créer des applications compatibles avec les ABI Android suivantes:
32 bits (ex. :
armeabi-v7a
) et 64 bits (arm64-v8a
) qui ciblent les appareils physiques compatibles ARCore.Applications 32 bits (
x86
) et 64 bits (x86_64
) exécutées dans un émulateur Android
Lorsque vous compilez une application compatible avec ARCore, le système de compilation Android inclut une ou plusieurs bibliothèques natives ARCore (lib/…/libarcore_sdk*.so
) pour les ABI Android ciblées par votre application.
Auparavant, les applications compatibles avec ARCore 32 bits uniquement pouvaient s'exécuter sur des appareils 32 bits et 64 bits. En août 2020, les services Google Play pour la RA (ARCore) ont cessé d'inclure des bibliothèques natives 32 bits sur certains appareils 64 bits. Seules les applications 32 bits compatibles avec ARCore ne pouvaient alors plus s'exécuter sur les appareils 64 bits concernés. Dans une prochaine version, la prise en charge des applications ARCore 32 bits uniquement pourra être supprimée sans préavis pour les appareils 64 bits restants.
Les applications 32 bits uniquement compatibles avec ARCore qui ne sont pas mises à jour ne pourront pas créer de session et risquent de planter si vous tentez de démarrer une session de réalité augmentée (RA) sur les appareils 64 bits concernés, en particulier:
SDK ARCore | Détails de l'échec de la création de la session |
---|---|
SDK ARCore pour Android (NDK) |
ArSession_create et ArSession_createWithFeatures renvoient AR_ERROR_FATAL .
|
SDK ARCore pour Android (Java) |
Les constructeurs de session, Session(Context) et Session(Context, Set<Session.Feature>) , génèrent une FatalException .
|
SDK ARCore pour Unity |
Lorsque vous activez le composant ARCoreSession , qui se trouve généralement sur le Prefab ARCore Device, ARCore ne crée pas de session ARCore et Session.Status est SessionStatus.FatalError .
|
AR Foundation (Unity) + Plug-in ARCore XR |
L'application cesse de s'afficher (écran noir) lorsqu'elle tente de démarrer une session de RA en raison d'un plantage sur le thread principal lors du chargement de bibliothèques natives ARCore 32 bits inexistantes. |
Déterminer si votre application doit être mise à jour
Pour vérifier si votre application publiée inclut les bibliothèques ARCore natives requises pour la compatibilité avec les appareils 64 bits:
Ouvrez la Google Play Console.
Sélectionnez votre application compatible ARCore.
Développez la version active de l'application pour vérifier que les plates-formes natives sont compatibles avec les architectures 64 bits (
arm64-v8a
).
Mettre à jour votre application pour qu'elle soit compatible avec les appareils 64 bits
Pour mettre à jour une application existante compatible avec ARCore 32 bits uniquement afin d'inclure les bibliothèques natives 64 bits:
Mettez à jour votre projet pour utiliser la dernière version du SDK ARCore.
Créez votre application et publiez-la à l'aide de la Google Play Console.
Google Play vérifiera que votre application respecte l'exigence 64 bits du Google Play Store, qui est entrée en vigueur le 1er août 2019. Pour vous assurer que votre application compatible ARCore est compatible avec le 64 bits (arm64-v8a
) pour tous les appareils 64 bits, quels que soient la version d'Android ou le niveau d'API.