Wymagania ARCore dotyczące wersji 64-bitowej

W sierpniu 2020 roku na niektórych urządzeniach 64-bitowych Usługi Google Play dla AR (ARCore) przestały obsługiwać aplikacje 32-bitowe. Obsługa aplikacji z obsługą tylko 32-bitowego kodu ARCore na pozostałych urządzeniach 64-bitowych może zostać usunięta w nadchodzącej wersji ARCore bez powiadomienia. Nie ma to wpływu na aplikacje 32-bitowe obsługujące ARCore działające na urządzeniach 32-bitowych i nadal będą obsługiwane.

Jeśli opublikujesz wersję 32-bitową (np. armeabi-v7a) aplikacji obsługującej ARCore bez publikowania odpowiedniej wersji 64-bitowej (arm64-v8a) na urządzenia 64-bitowe, musisz zaktualizować aplikację za pomocą zgodnej wersji 64-bitowej na urządzenia 64-bitowe.

Aplikacje 32-bitowe obsługujące ARCore, które nie zostaną zaktualizowane, nie utworzą sesji ARCore i mogą spowodować awarię podczas próby uruchomienia sesji rzeczywistości rozszerzonej (AR) na urządzeniach 64-bitowych, których dotyczy problem.

Jeśli ustawisz atrybut android:use32bitAbi="true" w elemencie AndroidManifest.xml aplikacji, aplikacja będzie używać tylko bibliotek 32-bitowych. Wszystkie funkcje AR w Twojej aplikacji będą próbowały używać ARCore w trybie 32-bitowym. Jednak na niektórych urządzeniach 64-bitowych takie biblioteki nie są dostępne w usłudze Usługi Google Play dla AR. Bez tych bibliotek aplikacja nie może utworzyć sesji ARCore i może ulec awarii przy próbie rozpoczęcia sesji rzeczywistości rozszerzonej (AR) na urządzeniach 64-bitowych, których dotyczy problem. Ma to wpływ zarówno na natywne funkcje AR, jak i te oparte na technologii WebXR w komponencie WebView.

Wymagania dotyczące wersji 64-bitowej w Sklepie Google Play

Wymagania 64-bitowe ARCore opisane w poprzedniej sekcji dotyczą wszystkich urządzeń 64-bitowych, niezależnie od wersji Androida i poziomu interfejsu API. To wymaganie jest niezależne i nie jest związane z wymaganiami dotyczącymi kodu 64-bitowego Google Play, które weszły w życie 1 sierpnia 2019 roku. Jest ono oceniane na poziomie wersji aplikacji i dotyczy tylko plików APK lub pakietów aplikacji rozpowszechnianych na urządzeniach z Androidem 9 Pie (poziom interfejsu API 28) lub nowszym.

Omówienie obsługi interfejsu ARCore ABI

ARCore umożliwia tworzenie aplikacji, które obsługują te interfejsy ABI Androida:

Gdy tworzysz aplikację obsługującą ARCore, system kompilacji Androida zawiera co najmniej 1 bibliotekę natywną ARCore (lib/…/libarcore_sdk*.so) dla interfejsów ABI Androida, na które będzie kierowana Twoja aplikacja.

Aplikacje obsługujące tylko 32-bitowe ARCore były wcześniej uruchamiane zarówno na urządzeniach 32-bitowych, jak i 64-bitowych. W sierpniu 2020 r. Usługi Google Play dla AR (ARCore) przestały uwzględniać 32-bitowe biblioteki natywne na niektórych urządzeniach 64-bitowych. W tym czasie tylko aplikacje z 32-bitową obsługą ARCore przestały działać na urządzeniach 64-bitowych, których dotyczył ten problem. W kolejnej wersji obsługa 32-bitowych aplikacji obsługujących ARCore może również zostać bez powiadomienia usunięta z pozostałych urządzeń 64-bitowych.

Aplikacje obsługujące tylko 32-bitowe ARCore, które nie zostaną zaktualizowane, nie utworzą sesji i mogą spowodować awarię podczas próby rozpoczęcia sesji rzeczywistości rozszerzonej (AR) na urządzeniach 64-bitowych, których dotyczy problem. Dotyczy to zwłaszcza:

Pakiet SDK ARCore Szczegóły błędu tworzenia sesji
Pakiet SDK ARCore na Androida (NDK) ArSession_create i ArSession_createWithFeatures zwracają AR_ERROR_FATAL.
Pakiet SDK ARCore na Androida (Java) Konstruktory sesji, Session(Context) i Session(Context, Set<Session.Feature>), zgłoszą FatalException.
Pakiet SDK ARCore na Unity Gdy włączysz komponent ARCoreSession, który zwykle znajduje się we wstępnym fabule ARCore Device, ARCore nie utworzy sesji ARCore, a Session.Status otrzyma wartość SessionStatus.FatalError.
AR Foundation (Unity)
+ wtyczka ARCore XR
Aplikacja przestanie renderować (czarny ekran), gdy spróbuje rozpocząć sesję AR z powodu awarii w wątku głównym podczas próby wczytania nieistniejących 32-bitowych bibliotek natywnych ARCore.

Ustalam, czy musisz zaktualizować aplikację

Aby sprawdzić, czy opublikowana aplikacja zawiera wymagane biblioteki natywne ARCore do obsługi urządzeń 64-bitowych:

  1. Otwórz Konsolę Google Play.

  2. Wybierz aplikację obsługującą ARCore.

  3. Rozwiń aktywną wersję aplikacji, aby sprawdzić, czy platformy natywne obsługują wersję 64-bitową (arm64-v8a).

Aktualizuję aplikację, aby obsługiwała urządzenia 64-bitowe

Aby zaktualizować istniejącą aplikację 32-bitową obsługującą ARCore tak, aby zawierała 64-bitowe biblioteki natywne:

  1. Zaktualizuj projekt, aby używał najnowszego pakietu SDK ARCore.

  2. Utwórz aplikację i opublikuj ją za pomocą Konsoli Google Play.

Google Play sprawdzi, czy Twoja aplikacja spełnia wymagania Sklepu Google Play dotyczące kodu 64-bitowego, które weszły w życie 1 sierpnia 2019 roku. Aby mieć pewność, że Twoja aplikacja z obsługą ARCore obsługuje wersję 64-bitową (arm64-v8a) na wszystkich urządzeniach 64-bitowych, niezależnie od wersji Androida czy poziomu interfejsu API.