Em agosto de 2020, o Google Play Services para RA (ARCore) removeu o suporte a apps exclusivos de 32 bits em alguns dispositivos de 64 bits. A compatibilidade com apps compatíveis com ARCore somente de 32 bits nos dispositivos de 64 bits restantes pode ser removida sem aviso prévio em uma próxima versão do ARCore. Apps compatíveis com ARCore apenas de 32 bits executados em dispositivos de 32 bits não são afetados e continuam a ter suporte.
Se você publicou um anúncio exclusivo de 32 bits (por exemplo, armeabi-v7a
) do app compatível com ARCore sem publicar uma versão correspondente de 64 bits (arm64-v8a
) para dispositivos de 64 bits, você vai precisar atualizar o app com uma versão de 64 bits compatível com dispositivos de 64 bits.
Apps de 32 bits compatíveis com ARCore e não atualizados não vão criar uma sessão do ARCore e poderão falhar ao tentar iniciar uma sessão de realidade aumentada (RA) em dispositivos de 64 bits afetados.
Se você definir o atributo android:use32bitAbi="true"
no
AndroidManifest.xml
do app, ele usará apenas bibliotecas de 32 bits. Qualquer experiência
de RA no seu app tentará usar o ARCore no modo de 32 bits. No entanto, as bibliotecas de 32 bits não estarão presentes no serviço Google Play Services para RA em alguns dispositivos de 64 bits. Sem essas bibliotecas, seu app não
criará uma sessão do ARCore e poderá falhar ao tentar iniciar uma sessão de realidade
aumentada (RA) nos dispositivos de 64 bits afetados. Isso afeta as experiências de RA
nativas e as baseadas em WebXR dentro de um componente de WebView.
Requisito de 64 bits da Google Play Store
O requisito do ARCore de 64 bits descrito na seção anterior se aplica a todos os dispositivos de 64 bits, independente da versão do Android e do nível da API. Esse requisito é separado e não está relacionado ao requisito de 64 bits do Google Play que entrou em vigor em 1o de agosto de 2019. Ele é avaliado no nível da versão do app e se aplica somente a APKs ou pacotes de apps distribuídos para dispositivos com o Android 9 Pie (nível 28 da API) ou versões mais recentes.
Noções básicas sobre o suporte à ABI do ARCore
O ARCore permite criar apps com suporte para as seguintes ABIs do Android:
32 bits (por exemplo,
armeabi-v7a
) e de 64 bits (arm64-v8a
) que segmentam dispositivos físicos com suporte ao ARCoreApps de 32 (
x86
) e 64 bits (x86_64
) que são executados em um Android Emulator.
Quando você cria um app compatível com ARCore, o sistema de build do Android vai incluir uma ou
mais bibliotecas nativas do ARCore (lib/…/libarcore_sdk*.so
) para as ABIs do Android
segmentadas pelo seu app.
Apps de 32 bits somente e compatíveis com ARCore podiam ser executados em dispositivos de 32 e 64 bits. Em agosto de 2020, o Google Play Services para RA (ARCore) deixou de incluir bibliotecas nativas de 32 bits em alguns dispositivos de 64 bits. Quando apenas apps com 32 bits compatíveis com ARCore não eram mais executados em dispositivos de 64 bits afetado. Em uma versão futura, o suporte a apps de 32 bits somente compatíveis com ARCore poderá ser removido sem aviso prévio nos dispositivos de 64 bits restantes.
Apps de 32 bits compatíveis com ARCore e não atualizados não vão criar uma sessão e poderão falhar ao tentar iniciar uma sessão de realidade aumentada (RA) em dispositivos de 64 bits afetados, especificamente:
SDK do ARCore | Detalhes da falha na criação da sessão |
---|---|
SDK do ARCore para Android (NDK) |
ArSession_create e
ArSession_createWithFeatures
vão retornar AR_ERROR_FATAL .
|
SDK do ARCore para Android (Java) |
Os construtores de sessão, Session(Context) e Session(Context, Set<Session.Feature>) , geram uma FatalException .
|
SDK do ARCore para Unity |
Quando você ativa o componente
ARCoreSession ,
que geralmente é encontrado no prefab
Dispositivo ARCore, o ARCore
não vai criar uma sessão ARCore, e
Session.Status
será SessionStatus.FatalError .
|
AR
Foundation (Unity) + Plug-in ARCore XR |
O app interromperá a renderização (tela preta) quando ele tentar iniciar uma sessão de RA devido a uma falha na linha de execução principal ao tentar carregar bibliotecas nativas do ARCore de 32 bits inexistentes. |
Como determinar se o app precisa ser atualizado
Para verificar se o app publicado inclui as bibliotecas ARCore nativas necessárias para oferecer suporte a dispositivos de 64 bits:
Abra o Google Play Console.
Selecione seu app compatível com ARCore.
Expanda a versão ativa do app para verificar se as Plataformas nativas incluem suporte a 64 bits (
arm64-v8a
).
Como atualizar seu app para oferecer compatibilidade com dispositivos de 64 bits
Para atualizar um app de 32 bits e compatível com ARCore e incluir bibliotecas nativas de 64 bits, faça o seguinte:
Atualize seu projeto para usar o SDK do ARCore mais recente.
Crie e publique o app usando o Google Play Console.
O Google Play verifica se seu app atende ao requisito de 64 bits da Google Play Store, que entrou em vigor em 1o de agosto de 2019. Para garantir que seu
app compatível com ARCore inclua suporte a 64 bits (arm64-v8a
) para todos os dispositivos de 64 bits,
independente da versão do Android ou do nível da API.