Ad agosto 2020, Google Play Services per AR (ARCore) ha rimosso il supporto delle app solo a 32 bit su alcuni dispositivi a 64 bit. Il supporto per le app ARCore solo a 32 bit abilitate sui restanti dispositivi a 64 bit potrebbe essere rimosso senza preavviso in una versione di ARCore futura. Le app compatibili solo con ARCore a 32 bit in esecuzione su dispositivi a 32 bit non sono interessate e continuano a essere supportate.
Se hai pubblicato un'immagine a 32 bit (ad es. armeabi-v7a
) della tua
app compatibile con ARCore senza pubblicare una versione a 64 bit (arm64-v8a
)
corrispondente per i dispositivi a 64 bit, devi aggiornare l'app con una versione a 64 bit
compatibile per i dispositivi a 64 bit.
Le app compatibili con ARCore solo a 32 bit che non vengono aggiornate non creeranno una sessione ARCore e potrebbero arrestarsi in modo anomalo quando si cerca di avviare una sessione di realtà aumentata (AR) sui dispositivi a 64 bit interessati.
Se imposti l'attributo android:use32bitAbi="true"
in AndroidManifest.xml
dell'app, l'app utilizzerà soltanto librerie a 32 bit. Qualsiasi esperienza AR nella tua app tenterà di utilizzare ARCore in modalità a 32 bit. Tuttavia, le librerie a 32 bit non saranno presenti nel servizio Google Play Services per AR su alcuni dispositivi a 64 bit. Senza queste librerie, l'app non sarà in grado di creare una sessione ARCore e potrebbe arrestarsi in modo anomalo quando tenti di avviare una sessione di realtà aumentata (AR) sui dispositivi a 64 bit interessati. Questo riguarda sia le esperienze AR native sia quelle basate su WebXR all'interno di un componente WebView.
Requisito relativo al formato 64 bit del Google Play Store
Il requisito ARCore a 64 bit descritto nella sezione precedente si applica a tutti i dispositivi a 64 bit, indipendentemente dalla versione di Android e dal livello API. Questo requisito è separato e non è correlato al requisito a 64 bit di Google Play entrato in vigore il 1° agosto 2019. Questo requisito viene valutato a livello di release dell'app e si applica solo agli APK o agli app bundle distribuiti su dispositivi con Android 9 Pie (livello API 28) o versioni successive.
Informazioni sul supporto ABI di ARCore
ARCore consente di creare app che supportano le seguenti ABI Android:
32 bit (ad es.
armeabi-v7a
) e a 64 bit (arm64-v8a
) che hanno come target i dispositivi fisici supportatiApp a 32 bit (
x86
) e a 64 bit (x86_64
) che vengono eseguite in un emulatore Android
Quando crei un'app compatibile con ARCore, il sistema di build Android include una o più librerie native ARCore (lib/…/libarcore_sdk*.so
) per le ABI Android scelte come target dalla tua app.
In precedenza, le app compatibili solo con ARCore a 32 bit potevano essere eseguite su dispositivi a 32 e 64 bit. Nell'agosto 2020, Google Play Services per AR (ARCore) ha smesso di includere le librerie native a 32 bit su alcuni dispositivi a 64 bit. A quel punto, le app compatibili solo con ARCore a 32 bit non potevano più essere eseguite sui dispositivi a 64 bit interessati. In una release futura, il supporto per le app solo a 32 bit compatibili con ARCore potrebbe essere rimosso senza preavviso anche dai restanti dispositivi a 64 bit.
Le app compatibili solo con ARCore solo a 32 bit che non vengono aggiornate non genereranno una sessione e potrebbero arrestarsi in modo anomalo quando si cerca di avviare una sessione di realtà aumentata (AR) sui dispositivi a 64 bit interessati, in particolare:
SDK ARCore | Dettagli errore di creazione sessione |
---|---|
SDK ARCore per Android (NDK) |
ArSession_create e
ArSession_createWithFeatures
restituiranno AR_ERROR_FATAL .
|
SDK ARCore per Android (Java) |
I costruttori delle sessioni,
Session(Context)
e
Session(Context, Set<Session.Feature>) ,
generano un
FatalException .
|
SDK ARCore per Unity |
Quando abiliti il componente
ARCoreSession , che di solito si trova nella prefabbricata
ARCore Device, ARCore
non creerà una sessione ARCore e
Session.Status
sarà SessionStatus.FatalError .
|
AR
Foundation (Unity) + Plug-in ARCore XR |
Il rendering dell'app verrà interrotto (schermata nera) quando tenta di avviare una sessione AR, a causa di un arresto anomalo nel thread principale durante il tentativo di caricare librerie native ARCore a 32 bit inesistenti. |
Stabilire se l'app deve essere aggiornata
Per verificare se la tua app pubblicata include le librerie ARCore native necessarie per supportare i dispositivi a 64 bit:
Apri Google Play Console.
Seleziona l'app che supporta ARCore.
Espandi la release attiva dell'app per verificare che le piattaforme native includano il supporto del formato a 64 bit (
arm64-v8a
).
Aggiornamento dell'app per il supporto dei dispositivi a 64 bit
Per aggiornare un'app esistente compatibile con ARCore solo a 32 bit in modo da includere librerie native a 64 bit:
Aggiorna il progetto per utilizzare l'SDK ARCore più recente.
Crea la tua app e pubblicala utilizzando Google Play Console.
Google Play verificherà che la tua app soddisfi il requisito di utilizzo dei 64 bit del Google Play Store, entrato in vigore il 1° agosto 2019. Per assicurarti che la tua app compatibile con ARCore includa il supporto del formato a 64 bit (arm64-v8a
) per tutti i dispositivi a 64 bit, indipendentemente dalla versione di Android o dal livello API.