Im August 2020 haben die Google Play-Dienste für AR (ARCore) auf einigen 64-Bit-Geräten die Unterstützung für 32-Bit-Apps eingestellt. Der Support für ARCore-fähige 32-Bit-Apps auf den verbleibenden 64-Bit-Geräten kann in einer zukünftigen ARCore-Version ohne vorherige Ankündigung entfernt werden. Nur 32-Bit-ARCore-fähige Apps, die auf 32-Bit-Geräten ausgeführt werden, sind davon nicht betroffen und werden weiterhin unterstützt.
Wenn du eine reine 32-Bit-Version (z.B. armeabi-v7a
) deiner ARCore-fähigen App ohne eine entsprechende 64-Bit-Version (arm64-v8a
) für 64-Bit-Geräte zu veröffentlichen, musst du deine App mit einer kompatiblen 64-Bit-Version für 64-Bit-Geräte aktualisieren.
Nicht aktualisierte ARCore-fähige 32-Bit-Apps können keine ARCore-Sitzung erstellen und möglicherweise abstürzen, wenn auf betroffenen 64-Bit-Geräten eine Augmented-Reality-Sitzung gestartet wird.
Wenn Sie das Attribut android:use32bitAbi="true"
in der AndroidManifest.xml
Ihrer App festlegen, verwendet Ihre App nur 32-Bit-Bibliotheken. Bei allen AR-Funktionen in deiner App wird versucht, ARCore im 32-Bit-Modus zu verwenden. Die 32-Bit-Bibliotheken sind in den Google Play-Diensten für AR jedoch auf einigen 64-Bit-Geräten nicht vorhanden. Ohne diese Bibliotheken kann Ihre App keine ARCore-Sitzung erstellen und möglicherweise abstürzen, wenn Sie versuchen, auf diesen betroffenen 64-Bit-Geräten eine Augmented Reality-Sitzung (AR-Sitzung) zu starten. Dies betrifft sowohl native AR- als auch WebXR-basierte AR-Funktionen in einer WebView-Komponente.
Google Play Store – 64-Bit-Anforderung
Die im vorherigen Abschnitt beschriebene 64-Bit-Anforderung von ARCore gilt für alle 64-Bit-Geräte, unabhängig von der Android-Version und dem API-Level. Diese Anforderung ist separat und steht in keinem Zusammenhang mit der 64-Bit-Anforderung von Google Play, die am 1. August 2019 in Kraft getreten ist. Sie wird auf App-Release-Ebene ausgewertet und gilt nur für APKs oder App Bundles, die auf Geräten mit Android 9 Pie (API-Level 28) oder höher vertrieben werden.
Unterstützung von ARCore ABI
Mit ARCore können Sie Apps erstellen, die die folgenden Android-ABIs unterstützen:
32-Bit (z.B.
armeabi-v7a
) und 64-Bit-Apps (arm64-v8a
), die auf mit ARCore unterstützte Geräte ausgerichtet sind32-Bit- (
x86
) und 64-Bit-Apps (x86_64
), die in einem Android-Emulator ausgeführt werden
Wenn du eine ARCore-fähige App erstellst, enthält das Android-Build-System eine oder mehrere native ARCore-Bibliotheken (lib/…/libarcore_sdk*.so
) für die Android-ABIs, auf die deine App ausgerichtet ist.
Bisher konnten ausschließlich 32-Bit-ARCore-fähige Apps sowohl auf 32-Bit- als auch auf 64-Bit-Geräten ausgeführt werden. Im August 2020 wurden die Google Play-Dienste für AR (ARCore) eingestellt. Das gilt auch für native 32-Bit-Bibliotheken auf einigen 64-Bit-Geräten. Auf diesen 64-Bit-Geräten konnten ab diesem Zeitpunkt keine ARCore-fähigen 32-Bit-Apps mehr ausgeführt werden. In einer zukünftigen Version wird die Unterstützung für ARCore-fähige 32-Bit-Apps auch ohne vorherige Ankündigung von den restlichen 64-Bit-Geräten entfernt.
Nicht aktualisierte 32-Bit-ARCore-fähige Apps erstellen keine Sitzung und stürzen möglicherweise ab, wenn Sie auf betroffenen 64-Bit-Geräten eine Augmented-Reality-Sitzung (AR-Sitzung) starten möchten:
ARCore SDK | Details zum Fehler beim Erstellen der Sitzung |
---|---|
ARCore SDK for Android (NDK) |
ArSession_create und ArSession_createWithFeatures geben AR_ERROR_FATAL zurück.
|
ARCore SDK für Android (Java) |
Die Sitzungskonstruktoren Session(Context) und Session(Context, Set<Session.Feature>) geben eine FatalException aus.
|
ARCore SDK für Unity |
Wenn du die Komponente ARCoreSession aktivierst, die normalerweise auf der Voreinstellung des ARCore-Geräts zu finden ist, kann ARCore keine ARCore-Sitzung erstellen und Session.Status ist SessionStatus.FatalError .
|
AR
Foundation (Unity) + ARCore XR-Plug-in |
Das Rendern wird beendet (schwarzer Bildschirm), wenn die App versucht, eine AR-Sitzung zu starten. Grund dafür ist ein Absturz im Hauptthread beim Laden nicht vorhandener nativer 32-Bit-ARCore-Bibliotheken. |
Bestimmen, ob Ihre App aktualisiert werden muss
So prüfen Sie, ob Ihre veröffentlichte App die erforderlichen nativen ARCore-Bibliotheken zur Unterstützung von 64-Bit-Geräten enthält:
Öffnen Sie die Google Play Console.
Wählen Sie Ihre ARCore-fähige App aus.
Erweitern Sie den aktiven Release der App, um zu prüfen, ob die nativen Plattformen 64-Bit-Unterstützung (
arm64-v8a
) umfassen.
App für 64-Bit-Geräte aktualisieren
So aktualisieren Sie eine vorhandene ARCore-fähige 32-Bit-App, um native 64-Bit-Bibliotheken hinzuzufügen:
Aktualisieren Sie Ihr Projekt, um das neueste ARCore SDK zu verwenden.
Erstelle deine App und veröffentliche sie mit der Google Play Console.
Google Play überprüft, ob Ihre App die 64-Bit-Anforderung für den Google Play Store erfüllt, die am 1. August 2019 in Kraft getreten ist. So sorgst du dafür, dass deine ARCore-fähige App für alle 64-Bit-Geräte 64-Bit (arm64-v8a
) unterstützt, unabhängig von der Android-Version oder dem API-Level.