64-Bit-Architekturen unterstützen

Bei Google Play veröffentlichte Apps müssen 64-Bit-Architekturen 64-Bit-Version Ihrer App hinzufügen bietet Leistungsverbesserungen und ermöglicht die Einrichtung von Geräten mit 64-Bit- Hardware.

Mit den folgenden Schritten sorgen Sie dafür, dass Ihre 32-Bit-App 64-Bit-Geräte unterstützt.

App bewerten

Wenn Ihre App nur Code verwendet, der in der Programmiersprache Java oder Wenn Sie Kotlin einschließlich aller Bibliotheken und SDKs verwenden, unterstützt Ihre App 64-Bit-Geräte. Wenn Ihre App nativen Code verwendet oder Sie sich nicht sicher sind, ob das der Fall ist, prüfen Sie Ihre

Schneller Statuscheck

Rufen Sie die Play Console auf und prüfen Sie, ob vorhandene Releases konform sind.

In der Play Console werden auch Warnungen angezeigt, die für Ihren Release-Entwurf gelten, wenn alle Probleme im Zusammenhang mit der 64-Bit-Anforderung. Das folgende Bild ist ein Beispiel.

Wenn eine Benachrichtigung angezeigt wird, folgen Sie der Anleitung unten, um Ihre App mit 64‑Bit-Geräten kompatibel zu machen.

Verwendet Ihre App nativen Code?

Ihre App nutzt nativen Code, wenn:

  • Verwendet beliebigen (nativen) C/C++ Code in Ihrer App.
  • Verknüpfungen mit nativen Bibliotheken von Drittanbietern
  • Sie wurde von einem Drittanbieter-App-Builder erstellt, der native Bibliotheken verwendet.

Enthält Ihre App 64-Bit-Bibliotheken?

Überprüfen Sie die Struktur Ihrer APK-Datei. Beim Erstellen wird das APK mit allen nativen Bibliotheken verpackt, die von der App benötigt werden. Native Bibliotheken werden je nach ABI in verschiedenen Ordnern gespeichert. Es ist nicht erforderlich, alle 64-Bit-Architektur, aber Sie können für jede native 32-Bit-Architektur die erforderliche Unterstützung bieten. muss die entsprechende 64-Bit-Architektur enthalten.

Für die ARM-Architektur befinden sich die 32-Bit-Bibliotheken in armeabi-v7a. Die entsprechenden 64-Bit-Bibliotheken findest du in arm64-v8a.

Suchen Sie bei der x86-Architektur nach x86 für 32-Bit und x86_64 für 64-Bit.

Achten Sie darauf, dass sich in beiden Ordnern native Bibliotheken befinden. Hier noch einmal zusammengefasst:

Plattform Ordner für 32-Bit-Bibliotheken Ordner mit 64-Bit-Bibliotheken
SCHARF SCHALTEN lib/armeabi-v7a lib/arm64-v8a
x86 lib/x86 lib/x86_64

Je nach App befinden sich möglicherweise nicht in jedem Ordner genau dieselben Bibliotheken. Ziel ist es, dass Ihre App in einer reinen 64-Bit-Umgebung ordnungsgemäß ausgeführt wird.

Normalerweise enthält ein APK oder Bundle, das sowohl für 32-Bit- als auch für 64-Bit-Architekturen erstellt wurde, Ordner für beide ABIs, jeweils mit einer entsprechenden Reihe von nativen Bibliotheken. Wenn 64-Bit nicht unterstützt wird, wird möglicherweise ein 32-Bit-ABI-Ordner angezeigt aber kein 64-Bit-Ordner.

Mit dem APK Analyzer nach nativen Bibliotheken suchen

Mit dem APK Analyzer können Sie verschiedene Aspekte eines erstellten APKs bewerten. Damit kannst du native Bibliotheken finden und auf eine 64-Bit-Version Bibliotheken vorhanden sind.

  1. Öffnen Sie Android Studio und öffnen Sie ein beliebiges Projekt.
  2. Wählen Sie im Menü Build > APK analysieren...

    APK Analyzer starten

  3. Wählen Sie das APK aus, das Sie bewerten möchten.

  4. Suchen Sie im Ordner lib nach der Datei „.so“. -Dateien, falls vorhanden. Wenn keine vorhanden sind, unterstützt Ihre App 64-Bit-Geräte und Sie müssen nichts weiter tun. Wenn armeabi-v7a oder x86 angezeigt wird, haben Sie 32-Bit-Bibliotheken.

  5. Prüfen Sie, ob Sie ähnliche .so-Dateien im Ordner arm64-v8a oder x86_64 haben.

    APK-Analysetool starten

  6. Wenn Sie keine arm64-v8a- oder x86_64-Bibliotheken haben, aktualisieren Sie die mit dem Erstellen und Verpacken dieser Artefakte in Ihr APK beginnen.

  7. Wenn Sie bereits sehen, dass beide Bibliotheken verpackt werden, können Sie mit dem Testen Ihrer App auf 64-Bit-Hardware fortfahren.

Nach nativen Bibliotheken suchen, indem APKs entpackt werden

APK-Dateien sind wie ZIP-Dateien aufgebaut. Extrahieren Sie die APK-Datei mit der Befehlszeile oder einem anderen Extraktionstool. Je nach Extraktionstool müssen Sie die Datei möglicherweise in ZIP umbenennen.

Sehen Sie sich die extrahierten Dateien an und folgen Sie der Anleitung oben, um festzustellen, ob Ihre App 64‑Bit-Geräte unterstützt. Sie können den folgenden Befehl beispielsweise über die Befehlszeile ausführen:

:: Command Line
> zipinfo -1 YOUR_APK_FILE.apk | grep \.so$
lib/armeabi-v7a/libmain.so
lib/armeabi-v7a/libmono.so
lib/armeabi-v7a/libunity.so
lib/arm64-v8a/libmain.so
lib/arm64-v8a/libmono.so
lib/arm64-v8a/libunity.so

In diesem Beispiel sind die Bibliotheken armeabi-v7a und arm64-v8a vorhanden. Das bedeutet, dass die App 64-Bit-Architekturen unterstützt.

App mit 64-Bit-Bibliotheken erstellen

In der folgenden Anleitung wird beschrieben, wie Sie 64-Bit-Bibliotheken erstellen. Beachten Sie, dass Diese Schritte beziehen sich nur auf den Baucode und die Bibliotheken, die Sie erstellen können aus der Quelle.

Apps mit Android Studio oder Gradle entwickeln

Die meisten Android Studio-Projekte verwenden Gradle als zugrunde liegendes Build-System. Daher gilt dieser Abschnitt für beide Fälle. Fügen Sie zum Aktivieren von Builds für Ihren nativen Code arm64-v8a und/oder x86_64, je nachdem, welche Architekturen Sie verwenden möchten finden Sie unter der Einstellung ndk.abiFilters im „build.gradle“ Datei:

Cool

// Your app's build.gradle
plugins {
  id 'com.android.app'
}

android {
   compileSdkVersion 27
   defaultConfig {
       appId "com.google.example.64bit"
       minSdkVersion 15
       targetSdkVersion 28
       versionCode 1
       versionName "1.0"
       ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
// ...

Kotlin

// Your app's build.gradle
plugins {
    id("com.android.app")
}

android {
    compileSdkVersion(27)
    defaultConfig {
        appId = "com.google.example.64bit"
        minSdkVersion(15)
        targetSdkVersion(28)
        versionCode = 1
        versionName = "1.0"
        ndk {
            abiFilters += listOf("armeabi-v7a","arm64-v8a","x86","x86_64")
        }
// ...

Mit CMake erstellen

Wenn Ihre App mit CMake erstellt wurde, können Sie eine 64-Bit-Version erstellen. ABIs durch Übergeben der arm64-v8a in „-DANDROID_ABI“ Parameter:

:: Command Line
> cmake -DANDROID_ABI=arm64-v8a … or
> cmake -DANDROID_ABI=x86_64 …

Mit „ndk-build“ erstellen

Wenn Ihre App mit ndk-build erstellt wird, können Sie sie für 64-Bit-ABIs erstellen, indem Sie die Datei Application.mk mit der Variablen APP_ABI ändern:

APP_ABI := armeabi-v7a arm64-v8a x86 x86_64

32-Bit-Code auf 64-Bit umstellen

Wenn Ihr Code bereits auf dem Desktop oder iOS ausgeführt wird, müssen Sie in der Regel nichts weiter tun. zusätzliche Arbeit für Android. Wenn Ihr Code zum ersten Mal für ein 64‑Bit-System erstellt wird, müssen Sie vor allem darauf achten, dass Zeiger nicht mehr in 32‑Bit-Ganzzahltypen wie int passen.

Aktualisieren Sie Code, der Cursor in Typen wie int, unsigned oder uint32_t Auf Unix-Systemen entspricht long der Zeigergröße, dies ist aber nicht "true" für Windows. Verwenden Sie stattdessen die Typen uintptr_t oder intptr_t, die die Absicht offenlegen. Verwenden Sie den Typ ptrdiff_t, um den Unterschied zwischen zwei Zeiger zu speichern.

Sie sollten immer die in <stdint.h> definierten Ganzzahltypen mit fester Breite anstelle von Typen ohne feste Breite wie int oder long verwenden, auch wenn es sich nicht um Zeiger handelt.

Mit den folgenden Compiler-Flags können Sie Fälle abfangen, in denen Ihr Code falsch ist Konvertierung zwischen Zeigern und Ganzzahlen:

-Werror=pointer-to-int-cast
-Werror=int-to-pointer-cast
-Werror=shorten-64-to-32

Java-Klassen mit int-Feldern, die Verweise auf C/C++-Objekte enthalten, haben das gleiche Problem. Suchen Sie in Ihrer JNI-Quelle nach jint und wechseln Sie zu long auf der Java-Seite und jlong auf der C++-Seite.

Implizite Funktionsdeklarationen sind für 64-Bit-Code wesentlich gefährlicher. In C/C++ wird davon ausgegangen, dass der Rückgabetyp einer implizit deklarierten Funktion (d. h. einer Funktion, für die der Compiler keine Deklaration gefunden hat) int ist. Wenn der tatsächliche Rückgabetyp Ihrer Funktion ein Zeiger ist, funktioniert dies auf einem 32-Bit-System einwandfrei, da der Zeiger in eine Ganzzahl passt. Auf einem 64-Bit-System verwirft der Compiler jedoch die obere Hälfte des Zeigers. Beispiel:

// This function returns a pointer:
// extern char* foo();

// If you don't include a header that declares it,
// when the compiler sees this:
char* result = foo();

// Instead of compiling that to:
result = foo();

// It compiles to something equivalent to:
result = foo() & 0xffffffff;

// Which will then cause a SIGSEGV if you try to dereference `result`.

Mit dem folgenden Compiler-Flag werden Warnungen zu impliziten Funktionsdeklarationen in Fehler umgewandelt, damit Sie dieses Problem leichter finden und beheben können:

-Werror=implicit-function-declaration

Wenn Sie einen Inline-Assembler haben, schreiben Sie ihn um oder verwenden Sie eine einfache C/C++-Implementierung.

Wenn Sie hartcodierte Größen von Typen (z. B. 8 oder 16 Byte) haben, ersetzen Sie diese durch den entsprechenden sizeof(T)-Ausdruck, z. B. sizeof(void*).

Wenn Sie bedingt unterschiedliche Code für 32-Bit- und 64-Bit-Geräte kompilieren müssen, können Sie #if defined(__LP64__) für allgemeine 32/64-Unterschiede oder __arm__, __aarch64__ (arm64), __i386__ (x86) und __x86_64__ für die von Android unterstützten Architekturen verwenden.

Passen Sie Formatstrings für printf- oder scanf-ähnliche Funktionen an, da Sie mit den herkömmlichen Formatanweisungen keine 64-Bit-Typen so angeben können, dass sie sowohl für 32-Bit- als auch für 64-Bit-Geräte korrekt sind. Die Makros PRI und SCN in Dieses Problem lässt sich mit <inttypes.h> lösen, PRIxPTR und SCNxPTR zum Schreiben und Lesen von Hex-Zeigern; sowie PRId64 und SCNd64 zum Schreiben und 64-Bit-Werte tragbar lesen können.

Beim Verschieben müssen Sie möglicherweise 1ULL verwenden, um eine 64-Bit-Konstante zum Verschieben zu erhalten anstatt 1 zu verwenden, das nur 32 Bit hat.

Größenerhöhungen mit Android App Bundle abschwächen

Wenn Sie Ihrer App die Unterstützung für 64-Bit-Architekturen hinzufügen, kann die APK-Größe zunehmen. Wir empfehlen Ihnen dringend, die Android App Bundle-Funktion, um die Auswirkungen auf die Größe der im selben APK sowohl den nativen 32- als auch den 64-Bit-Code enthalten.

Spieleentwickler

Die drei am häufigsten verwendeten Suchmaschinen unterstützen 64-Bit:

  • Unglaublich seit 2015
  • Cocos2d seit 2015
  • Unity seit 2018

Unity-Entwickler

Auf leistungsfähige Versionen upgraden

Unity bietet 64-Bit-Unterstützung mit den Versionen 2018.2 und 16.04.2017.

Wenn Sie eine Version von Unity verwenden, die keine 64-Bit-Unterstützung bietet, ermitteln Sie die Version, auf die Sie ein Upgrade durchführen möchten, und folgen Sie den Anleitungen von Unity zur Migration Ihrer Umgebung. Achten Sie darauf, dass Ihre App auf eine Version umgestellt wird, mit der 64-Bit-Bibliotheken erstellt werden können. Unity empfiehlt, dass Sie Zugriff auf die die neuesten Funktionen und Updates durch Upgrade auf die neueste Version von „Langzeitsupport“ Version des Editors.

In diesem Diagramm sind die verschiedenen Unity-Versionen und die entsprechenden Maßnahmen aufgeführt:

Unity-Version Die Version unterstützt 64-Bit? Empfohlene Vorgehensweise

2020.x

✔️

Achten Sie darauf, dass Ihre Build-Einstellungen 64-Bit-Bibliotheken erzeugen.

2019.x

✔️

Achten Sie darauf, dass Ihre Build-Einstellungen 64-Bit-Bibliotheken erzeugen.

2018.4 (LTS)

✔️

Achten Sie darauf, dass Ihre Build-Einstellungen 64-Bit-Bibliotheken erzeugen.

2018,3

✔️

Achten Sie darauf, dass Ihre Build-Einstellungen 64-Bit-Bibliotheken erzeugen.

2018.2

✔️

Achten Sie darauf, dass Ihre Build-Einstellungen 64-Bit-Bibliotheken erzeugen.

2018.1

Experimentelle 64-Bit-Unterstützung verfügbar ist.

2017.4 (LTS)

✔️

Seit dem 16.04.2017 unterstützt. Achten Sie darauf, dass Ihre Build-Einstellungen 64-Bit-Bibliotheken erzeugen.

2017,3

✖️

Führen Sie ein Upgrade auf eine Version durch, die 64-Bit unterstützt.

2017.2

✖️

Führen Sie ein Upgrade auf eine Version durch, die 64-Bit unterstützt.

2017,1

✖️

Führen Sie ein Upgrade auf eine Version durch, die 64-Bit unterstützt.

<= 5,6

✖️

Führen Sie ein Upgrade auf eine Version durch, die 64-Bit unterstützt.

Build-Einstellungen zur Ausgabe von 64-Bit-Bibliotheken ändern

Wenn Sie eine Version von Unity verwenden, die 64-Bit-Android-Bibliotheken unterstützt, können Sie eine 64-Bit-Version Ihrer App generieren, indem Sie Ihre Build-Einstellungen anpassen. Verwenden Sie das IL2CPP-Backend als Scripting-Backend. So richten Sie Ihr Unity-Projekt für die 64-Bit-Architektur ein:

  1. Gehen Sie zu Build Settings (Build-Einstellungen) und achten Sie darauf, dass Sie Apps für Android entwickeln. Überprüfen Sie, ob sich das Unity-Symbol neben Android unter Platform befindet. 1. Wenn das Unity-Symbol nicht neben der Android-Plattform angezeigt wird, wählen Sie Android aus und klicken Sie auf Plattform wechseln.
  2. Klicken Sie auf Player-Einstellungen.

    Playereinstellungen in Unity

  3. Gehe zu Player-Einstellungspanel > Einstellungen für Android > Sonstige Einstellungen > Konfiguration.

  4. Setzen Sie Scripting Backend (Scripting-Back-End) auf IL2CPP.

  5. Klicken Sie das Kästchen Zielarchitektur > ARM64 an.

    Zielarchitekturen in Unity festlegen

  6. Bauen Sie wie gewohnt weiter.

Bei der Entwicklung für ARM64 müssen alle Assets speziell erstellt werden. für diese Plattform. Folgen Sie der Anleitung von Unity zum Verringern der APK-Größe und nutzen Sie gegebenenfalls die Funktion Android App Bundle, um diese Größenzunahme zu verringern.

Multi-APK und 64-Bit-Kompatibilität

Wenn Sie die Unterstützung für mehrere APKs von Google Play verwenden, deine App veröffentlichen, beachten Sie, dass die Einhaltung der 64-Bit-Anforderung geprüft wird auf Release-Ebene. Die 64-Bit-Anforderung gilt jedoch nicht für APKs oder App-Bundles, die nicht auf Geräten mit Android 9 Pie oder höher verteilt werden.

Wenn eines Ihrer APKs als nicht konform gekennzeichnet ist, aber eine ältere Version ist und es nicht möglich ist, es konform zu machen, können Sie im Manifest dieses APKs dem Element uses-sdk das Attribut maxSdkVersion="27" hinzufügen. Diese APK wird nicht an Geräte mit Android 9 Pie oder höher ausgeliefert und verhindert nicht mehr die Einhaltung der Richtlinien.

RenderScript und 64-Bit-Compliance

Wenn Ihre App RenderScript verwendet und mit einer älteren Version der Android-Tools erstellt wurde, treten möglicherweise Probleme mit der 64-Bit-Kompatibilität auf. Bei Build-Tools vor Version 21.0.0 generiert der Compiler möglicherweise Bitcode in einer externen .bc-Datei. Diese älteren .bc-Dateien werden für 64-Bit-Dateien nicht mehr unterstützt Architekturen, sodass das Vorhandensein der Datei in Ihrem APK die Compliance-Anforderungen Problem.

Entfernen Sie alle .bc-Dateien in Ihrem Projekt, führen Sie ein Upgrade Ihrer Umgebung auf build-tools-21.0.0 oder höher und legen Sie renderscriptTargetApi in Android Studio auf Nutzer ab 21 umzustellen, den Compiler, damit keine .bc-Dateien ausgegeben werden. Erstellen Sie dann Ihre App neu und suchen Sie nach .bc. und sie in die Play Console hochladen.

App auf 64-Bit-Hardware testen

Die 64-Bit-Version Ihrer App sollte dieselbe Qualität und Ausstattung wie die 32-Bit-Version bieten. Testen Sie Ihre App, um sicherzustellen, dass Nutzer auf den neuesten 64-Bit-Geräten Ihre App optimal nutzen können.

Nur 64-Bit-Geräte

Wir empfehlen dir, deine App nach Möglichkeit in einer strikten 64-Bit-Version zu testen. Verwenden Sie dazu eine der folgenden Optionen:

Google Pixel mit einem 64-Bit-System-Image

Um die App-Entwicklung und -Tests zu erleichtern, haben wir für einige Pixel-Geräte spezielle Systemabbilder mit einer strikten 64-Bit-Umgebung bereitgestellt. Diese 64-Bit-Images wurden ursprünglich gleichzeitig mit den Standard-System-Images für die Android 13- und 14-Preview-Releases bereitgestellt. Sie können sie jedoch weiterhin verwenden, wenn Sie Ihre App auf 64-Bit-Kompatibilität testen.

Nur 64-Bit-Bild abrufen

Ähnlich wie bei den System-Images aus der Fabrik können Sie ein reines 64-Bit-Image mit dem Android-Flash-Tool oder durch manuelles Flashen des Geräts auf Ihr Gerät aufspielen. Weitere Informationen finden Sie in den folgenden Abschnitten.

Gerät mit dem Android Flash Tool flashen

Mit dem Android Flash Tool können Sie ein System-Image sicher auf Ihr unterstütztes Pixel-Gerät flashen. Das Android Flash Tool funktioniert mit jedem Webbrowser, der WebUSB unterstützt, z. B. Chrome oder Edge 79 oder höher.

Das Android Flash Tool führt Sie schrittweise durch den Vorgang zum Flashen Ihrer Dafür müssen keine Tools installiert sein, aber Sie müssen Ihr Gerät entsperren. Gerät und aktivieren Sie USB-Debugging in den Entwickleroptionen. Eine vollständige Anleitung finden Sie in der Dokumentation zum Android-Flash-Tool.

Verbinden Sie Ihr Gerät über USB und legen Sie dann, je nach Art des System-Images, zu flashen, navigieren Sie über einen der folgenden Links zum Android Flash Tool und folgen Sie der Anleitung auf dem Bildschirm:

Gerät manuell blinken lassen

Sie können auch das neueste System-Image herunterladen und manuell auf Ihren . In der folgenden Tabelle finden Sie Informationen zum Herunterladen des System-Images für Ihr Testgerät. Das manuelle Flashen eines Geräts ist nützlich, wenn Sie die Testumgebung genau steuern oder häufig neu installieren müssen, z. B. bei automatisierten Tests.

Nachdem Sie Ihre Gerätedaten gesichert und das entsprechende System-Image heruntergeladen haben, können Sie das Bild auf Ihr Gerät flashen.

Sie können jederzeit zum neuesten öffentlichen Build zurückkehren. .

Nur 64-Bit-Factory-Images für Android 14 (Beta 5.3)

Diese Images bieten eine reine 64-Bit-Umgebung zum Testen der Kompatibilität von 64-Bit-Apps. Diese 64-Bit-Konfigurationen sind nur für Entwickler gedacht.

Gerät Downloadlink SHA-256-Prüfsumme
Pixel 4a (5G) 7e6731fab811ae389f5ff882d5c5a2b8b942b8363b22bbcc038b39d7c539e60a
Pixel 5 c4da6a19086a02f2cd2fa7a4054e870916954b8e5a61e9a07ee942c537e4b45a
Pixel 6 98943384284cbc7323b8867d84c36151757f67ae7633012fb69cb5d6bec2b554
Pixel 6 Pro 67ec40be5bd05a40fa5dabc1ce6795aae75d1904193d52e2da00425ed7cb895b
Nur 64-Bit-Images für Android 13 (QPR3 Beta 3.2)

Diese Images bieten eine reine 64-Bit-Umgebung zum Testen der Kompatibilität von 64-Bit-Apps. Diese 64-Bit-Konfigurationen sind nur für Entwickler gedacht.

Gerät Downloadlink SHA-256-Prüfsumme
Pixel 4a (5G) b4be40924f62c3c2b3ed20a9f7fa4303aa9c39649d778eb96f86c867fe3ae59a
Pixel 5 6e5e027a4f64f9f786db9bb69d50d1a551c3f6aad893ae450e1f8279ea1b761a
Pixel 6 becb9b81a5bddad67a4ac32d30a50dcb372b9d083cb7c046e5180510e479a0b8
Pixel 6 Pro b0ef544ed2312ac44dc827f24999281b147c11d76356c2d06b2c57a191c60480
Zu einem öffentlichen Build zurückkehren

Sie können entweder das Android-Flash-Tool verwenden, um das Factory Image zu flashen, oder ein System-Image mit den Werksspezifikationen auf der Seite Factory Images für Nexus- und Pixel-Geräte herunterladen und dann manuell auf das Gerät flashen.

Android-Emulator

Ab Android 12 (API-Level 31) sind Android Emulator-Systemimages nur noch 64-Bit. Erstellen Sie ein virtuelles Android-Gerät (AVD) mit einem System-Image mit Android 12 (API-Level 31) oder höher, um eine reine 64-Bit-Umgebung für App-Tests zu erhalten.

Weitere Geräteoptionen

Wenn Sie keines dieser Geräte besitzen oder den Android-Emulator nicht verwenden können, ist die Verwendung eines 64-Bit-fähigen Geräts, wie z. B. Google Pixel oder andere aktuelle Flagship-Geräte anderer Gerätehersteller.

App installieren und testen

Am einfachsten testen Sie Ihr APK, indem Sie die App mit Android Debug Bridge (adb) installieren. In den meisten Fällen können Sie --abi als Parameter angeben, um anzugeben, welche Bibliotheken auf dem Gerät installiert werden sollen. Dadurch wird die App nur mit den 64-Bit-Bibliotheken auf dem Gerät installiert.

:: Command Line
# A successful install:
> adb install --abi armeabi-v7a YOUR_APK_FILE.apk
Success

# If your APK does not have the 64-bit libraries:
> adb install --abi arm64-v8a YOUR_APK_FILE.apk
adb: failed to install YOUR_APK_FILE.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]

# If your device does not support 64-bit, an emulator, for example:
> adb install --abi arm64-v8a YOUR_APK_FILE.apk
ABI arm64-v8a not supported on this device

Testen Sie Ihre App nach der erfolgreichen Installation wie gewohnt, um sicherzustellen, dass die Qualität der 64-Bit-Version entspricht.

Nach bekannten Kompatibilitätsproblemen suchen

Prüfe deine App beim Testen auf die folgenden Probleme, die sich auf Apps auswirken, wenn auf 64-Bit-Geräten ausgeführt werden. Auch wenn Ihre App nicht von den betroffenen Bibliotheken und Drittanbieter-Bibliotheken und -SDKs direkt in den Abhängigkeiten Ihrer App,

SoLoader

Wenn Sie das Native Code Loader SDK SoLoader verwenden, aktualisieren Sie es auf Version 0.10.4 oder höher. Wenn Ihr Apps verwendet SDKs, die von SoLoader abhängen, sollten Sie auf die neueste Version aktualisieren stabile Version der betroffenen SDKs.

Bei SoLoader v0.9.0 und niedriger wird davon ausgegangen, dass Systembibliotheken in /vendor/lib:/system/lib vorhanden sind. Dieser Fehler tritt auf Geräten wie Google Pixel 7 nicht auf, da der Pfad dort vorhanden ist. Auf Geräten, auf denen sich nur Systembibliotheken in /vendor/lib64:/system/lib64 befinden, führt diese Annahme jedoch zu Abstürzen.

Weitere Informationen zur Behebung dieses und anderer durch SoLoader verursachter Probleme findest du in der in der Google-Hilfe.

OpenSSL

Wenn Sie die OpenSSL-Bibliothek verwenden, aktualisieren Sie auf OpenSSL 1.1.1i oder höher. Wenn Ihre App SDKs verwenden, die eine Kommunikation über HTTPS ermöglichen, oder andere SDKs, die von OpenSSL abhängig sind, müssen Sie auch das SDK auf die neueste Version aktualisieren, die eine neuere OpenSSL-Version verwendet. Wenden Sie sich an den SDK-Anbieter, falls keiner verfügbar ist.

ARMv8.3 PAC ermöglicht die hardwaregestützte Kontrollflussintegrität durch die Authentifizierung von Zeigern zur Laufzeit. Frühere Versionen von OpenSSL verwendet diese Funktionen falsch, was zu Laufzeitabstürzen in allen Geräte mit Prozessoren, die auf ARMv8.3a und höher basieren.

Weitere Informationen zur Behebung dieses und anderer durch OpenSSL verursachter Probleme finden Sie in der entsprechenden Antwort in der Google-Hilfe.

BTI

ARMv8.5 und höher verwenden Branch Target Instructions (BTIs), um sich vor JOP-Angriffe: Frühere Versionen der Verschleierung SDKs, die in zufällige Offsets von mit BTI erstellten Bibliotheken verzweigt werden, können dazu führen, zum Absturz gebracht hat. Da die Anweisungen als HINTs codiert sind, ist dieser Fehler auf Geräten, die BTI nicht unterstützen, nicht zu beobachten.

Veröffentlichen

Wenn du der Meinung bist, dass deine App fertig ist, kannst du sie wie gewohnt veröffentlichen. Gehen Sie wie immer zu folgen Sie den Best Practices für die Bereitstellung Ihrer App. Wir empfehlen Ihnen, von geschlossenen Test-Tracks auf eine begrenzte Anzahl von damit die Qualität Ihrer App konstant bleibt.

Wie bei der Einführung eines größeren Updates sollten Sie Ihre 64-Bit-fähige Geräte, bevor sie für eine größere Zielgruppe veröffentlicht werden.

Herunterladen Android 14 factory system image (64-bit-only)

Bevor Sie herunterladen können, müssen Sie den folgenden Nutzungsbedingungen zustimmen.

Nutzungsbedingungen

By clicking to accept, you hereby agree to the following:

All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.

Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).

WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
Android 14 factory system image (64-bit-only)

bramble_beta_64-upb5.230623.006-factory-7e6731fa.zip

Herunterladen Android 14 factory system image (64-bit-only)

Bevor Sie herunterladen können, müssen Sie den folgenden Nutzungsbedingungen zustimmen.

Nutzungsbedingungen

By clicking to accept, you hereby agree to the following:

All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.

Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).

WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
Android 14 factory system image (64-bit-only)

redfin_beta_64-upb5.230623.006-factory-c4da6a19.zip

Herunterladen Android 14 factory system image (64-bit-only)

Bevor Sie herunterladen können, müssen Sie den folgenden Nutzungsbedingungen zustimmen.

Nutzungsbedingungen

By clicking to accept, you hereby agree to the following:

All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.

Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).

WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
Android 14 factory system image (64-bit-only)

oriole_beta_64-upb5.230623.006-factory-98943384.zip

Herunterladen Android 14 factory system image (64-bit-only)

Bevor Sie herunterladen können, müssen Sie den folgenden Nutzungsbedingungen zustimmen.

Nutzungsbedingungen

By clicking to accept, you hereby agree to the following:

All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.

Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).

WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
Android 14 factory system image (64-bit-only)

raven_beta_64-upb5.230623.006-factory-67ec40be.zip

Herunterladen Android 13 factory system image (64-bit-only)

Bevor Sie herunterladen können, müssen Sie den folgenden Nutzungsbedingungen zustimmen.

Nutzungsbedingungen

By clicking to accept, you hereby agree to the following:

All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.

Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).

WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
Android 13 factory system image (64-bit-only)

bramble_64-t3b3.230413.009-factory-b4be4092.zip

Herunterladen Android 13 factory system image (64-bit-only)

Bevor Sie herunterladen können, müssen Sie den folgenden Nutzungsbedingungen zustimmen.

Nutzungsbedingungen

By clicking to accept, you hereby agree to the following:

All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.

Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).

WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
Android 13 factory system image (64-bit-only)

redfin_64-t3b3.230413.009-factory-6e5e027a.zip

Herunterladen Android 13 factory system image (64-bit-only)

Bevor Sie herunterladen können, müssen Sie den folgenden Nutzungsbedingungen zustimmen.

Nutzungsbedingungen

By clicking to accept, you hereby agree to the following:

All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.

Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).

WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
Android 13 factory system image (64-bit-only)

oriole_64-t3b3.230413.009-factory-becb9b81.zip

Herunterladen Android 13 factory system image (64-bit-only)

Bevor Sie herunterladen können, müssen Sie den folgenden Nutzungsbedingungen zustimmen.

Nutzungsbedingungen

By clicking to accept, you hereby agree to the following:

All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.

Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).

WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
Android 13 factory system image (64-bit-only)

raven_64-t3b3.230413.009-factory-b0ef544e.zip