567 Stimmen

INSTALL_FAILED_NO_MATCHING_ABIS beim Installieren der APK

Ich habe versucht, meine App in das Android L Preview Intel Atom Virtual Device zu installieren, es ist fehlgeschlagen mit dem Fehler:

INSTALL_FAILED_NO_MATCHING_ABIS

Was bedeutet das?

732voto

Hiemanshu Sharma Punkte 7491

INSTALL_FAILED_NO_MATCHING_ABIS tritt auf, wenn Sie versuchen, eine App zu installieren, die native Bibliotheken enthält, jedoch keine native Bibliothek für Ihre CPU-Architektur besitzt. Wenn Sie beispielsweise eine App für armv7 kompiliert haben und versuchen, sie auf einem Emulator zu installieren, der stattdessen die Intel-Architektur verwendet, funktioniert sie nicht.

158voto

Asher Garland Punkte 4543

INSTALL_FAILED_NO_MATCHING_ABIS tritt auf, wenn Sie versuchen, eine App zu installieren, die nativen Bibliotheken hat und keine native Bibliothek für Ihre CPU-Architektur hat. Zum Beispiel, wenn Sie eine App für armv7 kompiliert haben und versuchen, sie auf einem Emulator zu installieren, der stattdessen die Intel-Architektur verwendet, wird es nicht funktionieren.

Verwenden von Xamarin in Visual Studio 2015. Beheben Sie dieses Problem durch:

  1. Öffnen Sie Ihre Xamarin .sln

  2. Klicken Sie mit der rechten Maustaste auf Ihr Android-Projekt

  3. Klicken Sie auf Eigenschaften

  4. Klicken Sie auf Android-Optionen

  5. Klicken Sie auf den "Erweitert"-Tab

  6. Unter "Unterstützte Architekturen" müssen Sie die folgenden Optionen aktivieren:

    1. armeabi-v7a
    2. x86
  7. speichern

  8. F5 (build)

Bearbeiten: Diese Lösung wurde ebenfalls als funktionierend in Visual Studio 2017 gemeldet.

Bearbeiten 2: Diese Lösung wurde ebenfalls als funktionierend in Visual Studio 2017 für Mac gemeldet.

97voto

Driss Bounouar Punkte 3002

Ich poste eine Antwort aus einem anderen Thread, weil es das ist, was bei mir gut funktioniert hat, der Trick ist, Unterstützung für beide Architekturen hinzuzufügen:

Ich poste das, weil ich keine direkte Antwort finden konnte und ein paar verschiedene Beiträge ansehen musste, um das zu erreichen, was ich wollte...

Ich konnte den x86 Accelerated (HAXM) Emulator einfach nutzen, indem ich dies zu meinem Module build.gradle-Skript innerhalb des android{}-Blocks hinzufügte:

splits {
        abi {
            enable true
            reset()
            include 'x86', 'armeabi-v7a'
            universalApk true
        }
    }

Führen Sie (Build) aus... Jetzt wird es eine (deineapp)-x86-debug.apk in Ihrem Ausgabeverzeichnis geben. Ich bin mir sicher, dass es einen Weg gibt, die Installation beim Ausführen zu automatisieren, aber ich starte einfach meinen bevorzugten HAXM-Emulator und benutze die Befehlszeile:

adb install (deineapp)-x86-debug.apk

61voto

R00We Punkte 1871

Wenn Sie Genymotion verwenden, benötigen Sie ARM-Übersetzung und GApps installieren

46voto

IgorGanapolsky Punkte 24581

Dies ist tatsächlich ein seltsamer Fehler, der durch das Multidexing Ihrer App verursacht werden kann. Um dies zu umgehen, verwenden Sie den folgenden Block in der build.gradle Datei Ihrer App:

android {
  splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a'
        universalApk true
    }
  }
  ...[Rest Ihres Gradle-Skripts]

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X