INSTALL_FAILED_NO_MATCHING_ABISDies ist der Fall, wenn Sie versuchen, eine App zu installieren, die native Bibliotheken und keine native Bibliothek für Ihre CPU-Architektur enthält. 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.
@ DanielOchoa Es liegt daran, dass sie nicht zwei Bilder für eine Vorschau-Version pflegen. Wenn L offiziell gestartet wird, wird es sicher auch ein Intel x86-Image geben.
Hiemanshu Sharma
1
Wie man dieses Problem löst. Ich benutze Genymotion Emulater und installiere Gapps und Genymotion-ARM-Translation_v1.1 bekomme immer noch dieses Problem.
Prashant Maheshwari Andro
3
Wenn Sie dieses Problem bei Genymotion auch bei Verwendung des ARM-Übersetzers haben, liegt dies daran, dass Sie ein virtuelles x86-Gerät wie Google Nexus 10 erstellen. Wählen Sie stattdessen ein virtuelles ARM-Gerät wie eines der benutzerdefinierten Tablets.
enl8enmentnow
1
Irgendeine Idee, warum dies auf einem Nexus 9 mit 5.1.1 nicht funktioniert. Es funktioniert gut auf einem Sony Xperia Z2-Tablet mit 4.4.2. Zusammengestellt Sdk 21, min 17 abd zielte 22.
Bear
3
Ich hatte dieses Problem, als ich den Android Studio-Emulator für ein Nexus 5x auf meinem Windows-Computer verwendete. Aus Geschwindigkeitsgründen [10x schneller] simuliert das Telefon standardmäßig so, als würde es mit einer Intel x86-Architektur arbeiten. [Snapdragon 808 von Nexus 5x basiert tatsächlich auf ARM: tomshardware.com/reviews/lg-g4,4353-2.html ] . Ich habe den Fehler beim Aufrufen des AVD-Managers behoben, das simulierte Gerät ausgewählt, auf dem der Fehler aufgetreten ist, und auf die Schaltfläche Bearbeiten geklickt, auf der ich eine ARM-Architektur (armeabi-v7a) eingerichtet habe. Nach dieser Änderung plus Neustart des Emulators verlief die Installation ohne Probleme
Antonino
150
INSTALL_FAILED_NO_MATCHING_ABIS ist, wenn Sie versuchen, eine App zu installieren, die native Bibliotheken und keine native Bibliothek für Ihre CPU-Architektur enthält. 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.
Verwenden von Xamarin unter Visual Studio 2015.
Beheben Sie dieses Problem durch:
Öffnen Sie Ihre Xamarin .sln
Klicken Sie mit der rechten Maustaste auf Ihr Android-Projekt
Klicken Sie auf Eigenschaften
Klicken Sie auf Android-Optionen
Klicken Sie auf die Registerkarte "Erweitert"
Aktivieren Sie unter "Unterstützte Architekturen" Folgendes:
armeabi-v7a
x86
speichern
F5 (bauen)
Bearbeiten: Es wurde berichtet, dass diese Lösung auch in Visual Studio 2017 funktioniert .
Bearbeiten 2: Es wurde berichtet, dass diese Lösung auch unter Visual Studio 2017 für Mac funktioniert .
Diese Lösung funktionierte auch in Visual Studio 2017 für ein Xamarin.Android-Projekt.
Corentinaltepe
1
Dies funktionierte auch für mich bei Verwendung eines Android WebView App-Projekts
JRodd
4
Auf Xamarin scheint es an jedem neuen Tag ein neues, unerwartetes Hindernis zu geben, das mich daran hindert, meine Anwendung auszuführen (die gestern funktioniert hat). Da sich meine csproj-Datei in der Dropbox befindet, konnte ich den Versionsverlauf überprüfen, und diese Eigenschaft war gestern nicht in der Datei enthalten, sie fehlte insgesamt. Heute musste ich die x86-Option hinzufügen, damit die App ausgeführt wird. Warum um alles in der Welt verwendet Xamarin oder Android plötzlich andere Standardwerte? Das ist so frustrierend! Wie auch immer, dank Leuten wie Ihnen kann ich die Arbeit überwinden und weitermachen. Vielen Dank und +1 für dich!
TMan
2
Ich wünschte, ich könnte mehr als einmal upvoten ... Getestet und arbeite an VS 2017 für Mac.
JordiVilaplana
Für Visual Studio Community 2019 für Mac: 1. Klicken Sie mit der rechten Maustaste auf Ihr Android-Projekt. 2. Klicken Sie auf Optionen. 3. Klicken Sie auf Android Build. 4. Erweitert
null
87
Ich poste eine Antwort aus einem anderen Thread, weil es für mich gut funktioniert hat. Der Trick besteht darin, Unterstützung für beide Architekturen hinzuzufügen:
Posting dies, weil ich keine direkte Antwort finden konnte und mir ein paar verschiedene Posts ansehen musste, um das zu bekommen, was ich wollte ...
Ich konnte den x86 Accelerated (HAXM) -Emulator verwenden, indem ich ihn einfach zum build.gradle-Skript meines Moduls hinzufügte. Inside android {} block:
splits {
abi {
enable true
reset()
include 'x86','armeabi-v7a'
universalApk true}}
Ausführen (erstellen) ... Jetzt befindet sich eine (yourapp) -x86-debug.apk in Ihrem Ausgabeordner. Ich bin mir sicher, dass es eine Möglichkeit gibt, die Installation beim Ausführen zu automatisieren, aber ich starte einfach meinen bevorzugten HAXM-Emulator und verwende die Befehlszeile:
In einigen von Ihnen verwendeten APIs müssen Sie sowohl "ARM Translation Installer v1.1" als auch "GApps für Ihre Android-Version" hinzufügen.
Saneryee
4
UPDATE 28. Mai 2017: Dieses Handbuch wird nicht mehr unterstützt und funktioniert wahrscheinlich nicht. Bitte benutzen Sie es nicht mehr und bitten Sie nicht mehr um Unterstützung. von xda-Entwicklern
AndroidCoolestRulest
1
Sie können diesem Link folgen , um ARM Translation
Devansh Maurya
37
Dies ist in der Tat ein seltsamer Fehler, der durch Multidexing Ihrer App verursacht werden kann. Verwenden Sie den folgenden Block in der build.gradle- Datei Ihrer App, um dies zu umgehen :
android {
splits {
abi {
enable true
reset()
include 'x86','armeabi-v7a'
universalApk true}}...[rest of your gradle script]
Hallo. Dadurch wurde mein Projekt erfolgreich erstellt, aber es gab mir immer noch den gleichen Fehler. Ich arbeite an Mac, Genymotion. Sind diese von Ihnen angegebenen Einstellungen im Allgemeinen nur für die Debug-Version oder auch für die Release-Erstellung vorgesehen?
myDoggyWritesCode
@ user3241111 Dies kann sowohl für Debug als auch für Prod verwendet werden. Haben Sie versucht, Ihr Projekt zu bereinigen? Oder vielleicht Android Studio ungültig machen / neu starten?
IgorGanapolsky
1
@ user3241111 Wenn Sie gradlew für Befehlszeilenterminal-Builds verwenden, können Sie Ihr Projekt dennoch mit gradle bereinigen.
IgorGanapolsky
1
Ich habe diese Lösung ausprobiert, sie hat funktioniert. In meinem Projekt gab es kein APP_ABI. Aber ich habe es entsprechend hinzugefügt und es baut nur eine apk und es funktioniert. stackoverflow.com/a/35565901/3241111
myDoggyWritesCode
1
Außerdem habe ich gerade den aktivierten Gradle-Daemon hinzugefügt und er hat den Prozess so beschleunigt ... Wie auch immer, danke für Ihre Unterstützung :)
myDoggyWritesCode
11
Ich weiß, dass es hier viele Antworten gab, aber die TL; DR-Version lautet wie folgt (wenn Sie Xamarin Studio verwenden):
Klicken Sie im Lösungsbaum mit der rechten Maustaste auf das Android-Projekt
Wählen Options
Gehe zu Android Build
Gehen Sie zur AdvancedRegisterkarte
Überprüfen Sie die Architekturen, die Sie in Ihrem Emulator verwenden (wahrscheinlich x86/ armeabi-v7a/ armeabi).
Vielen Dank, du rettest meinen Tag. Ich weiß nicht, warum ich bekam: Implementierung 'org.apache.directory.studio:org.apache.commons.io:2.4'
Pierrick HYMBERT
7
Der Kommentar von @ enl8enmentnow sollte eine Antwort sein, um das Problem mithilfe von genymotion zu beheben:
Wenn Sie dieses Problem bei Genymotion auch bei Verwendung des ARM-Übersetzers haben, liegt dies daran, dass Sie ein virtuelles x86-Gerät wie Google Nexus 10 erstellen. Wählen Sie stattdessen ein virtuelles ARM-Gerät wie eines der benutzerdefinierten Tablets.
Ich arbeite an einem Mac und wahrscheinlich ist er für ein virtuelles x86-Gerät gebaut. Ich habe es auch mit dem benutzerdefinierten Tablet von genymotion versucht, es hat nicht funktioniert und bei der Installation den gleichen Fehler
gemeldet
7
das hat bei mir funktioniert ... Android> Gradle Scripts> build.gradle (Modul: App) in Android hinzufügen *
Ich hatte dieses Problem mit der BitcoinJ-Bibliothek (org.bitcoinj: bitcoinj-core: 0.14.7), die build.gradle (in der Modul-App) eine Paketoption innerhalb des Android-Bereichs hinzugefügt hat. Es hat mir geholfen.
Vielen Dank. Es hat mir bei der Integration von Bitcoin J geholfen.
Umer Kiani
Vielen Dank, ich versuche viele Lösungen, aber diese Lösung funktioniert für mich für mich Mein Problem ist für scrypt-1.4.0.jar nicht in Android Pie Version (Nokia 7.1) installiert Gerät
Sagar Pithiya
3
In meinem Fall wurde in einem Xamarin-Projekt in Visual Studio ein Fehler behoben, der durch Auswahl von Eigenschaften -> Android-Optionen behoben wurde, und aktivieren Sie die Option Laufzeiten freigeben und Schnelle Bereitstellung verwenden, in einigen Fällen eine davon
Für genymotion auf dem Mac wurde beim Installieren meiner apk der Fehler INSTALL_FAILED_NO_MATCHING_ABIS angezeigt.
In meinem Projekt gab es kein "APP_ABI", aber ich habe es entsprechend hinzugefügt und es hat nur eine Apk für beide Architekturen erstellt, aber es hat funktioniert.
https://stackoverflow.com/a/35565901/3241111
Wenn Sie alles oben ausprobiert haben und trotzdem den gleichen Fehler "Weil ich dieses Problem bereits habe" haben, überprüfen Sie im Grunde, welche .jar oder .aar oder welches Modul, das Sie hinzugefügt haben, möglicherweise die einzige Bibliothek ist, die ndk verwendet, und diese unterstützt 8.0 nicht (Oreo) +, ebenfalls verwende ich die Microsoft SignalR-Socket-Bibliothek und füge ihre .jar-Dateien hinzu. Später habe ich herausgefunden, dass die App nicht in Oreo installiert ist. Danach entferne ich diese Bibliothek, da derzeit keine Lösung auf der Git-Seite vorhanden ist und ich mich für eine andere entscheide .
Überprüfen Sie daher die von Ihnen verwendete Bibliothek und suchen Sie danach, wenn Sie diese dringend benötigen.
Ich hatte dieses Problem, als ich von Android 7 (Nougat) auf Android 8 (Oreo) umgestiegen bin.
Ich habe verschiedene oben aufgeführte Wege ausprobiert und zu meinem Pech hat nichts funktioniert.
Also habe ich die APK - Datei zu ZIP - Datei extrahiert es geändert und gefunden lib Ordner mit dem diese Datei war /x86_64/darwin/libscrypt.dylib so diese zu entfernen , habe ich ein Code in meinem build.gradle Modul unter Android Abschnitt (dh )
Im Allgemeinen, um herauszufinden, welche Bibliotheksabhängigkeit eine inkompatible ABI aufweist,
Erstellen Sie eine APK-Datei in Android Studio (Menü Build> Build Bundle (s) / APK (s)> Build APK (s)) // aktuell am 01.04.2020
Benennen Sie die APK-Datei um und ersetzen Sie die Erweiterung "apk" durch die Erweiterung "zip".
Entpacken Sie die Zip-Datei in einen neuen Ordner
Gehe zum Ordner libs
Finden Sie heraus, welche * .jar-Bibliotheken mit inkompatiblen ABIs vorhanden sind
Sie können versuchen, die Version zu aktualisieren / diese Bibliotheken zu entfernen / zu ersetzen, um INSTALL_FAILED_NO_MATCHING_ABIS bei der Installation des apk-Problems zu lösen
Das ist mir passiert. Ich habe den SDK-Manager überprüft und festgestellt, dass derjenige, den ich verwendet habe, ein Update hatte. Ich habe es aktualisiert und das Problem ging weg.
Ziemlich spät, aber gerade darauf gestoßen. Dies ist für Xamarin.Android. Stellen Sie sicher, dass Sie nicht versuchen, im Release-Modus zu debuggen. Ich erhalte genau den gleichen Fehler, wenn ich mich im Release-Modus befinde und versuche zu debuggen. Durch einfaches Umschalten von Release auf Debug konnte Mine ordnungsgemäß installiert werden.
Antworten:
INSTALL_FAILED_NO_MATCHING_ABIS
Dies ist der Fall, wenn Sie versuchen, eine App zu installieren, die native Bibliotheken und keine native Bibliothek für Ihre CPU-Architektur enthält. 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.quelle
Verwenden von Xamarin unter Visual Studio 2015. Beheben Sie dieses Problem durch:
Aktivieren Sie unter "Unterstützte Architekturen" Folgendes:
speichern
Bearbeiten: Es wurde berichtet, dass diese Lösung auch in Visual Studio 2017 funktioniert .
Bearbeiten 2: Es wurde berichtet, dass diese Lösung auch unter Visual Studio 2017 für Mac funktioniert .
quelle
Ich poste eine Antwort aus einem anderen Thread, weil es für mich gut funktioniert hat. Der Trick besteht darin, Unterstützung für beide Architekturen hinzuzufügen:
Posting dies, weil ich keine direkte Antwort finden konnte und mir ein paar verschiedene Posts ansehen musste, um das zu bekommen, was ich wollte ...
Ich konnte den x86 Accelerated (HAXM) -Emulator verwenden, indem ich ihn einfach zum build.gradle-Skript meines Moduls hinzufügte. Inside android {} block:
Ausführen (erstellen) ... Jetzt befindet sich eine (yourapp) -x86-debug.apk in Ihrem Ausgabeordner. Ich bin mir sicher, dass es eine Möglichkeit gibt, die Installation beim Ausführen zu automatisieren, aber ich starte einfach meinen bevorzugten HAXM-Emulator und verwende die Befehlszeile:
quelle
(yourapp)-x86-debug.apk
Datei in meiner Projektausgabe finden.Wenn Sie Genymotion verwenden, müssen Sie ARM Translation und GApps installieren
quelle
Dies ist in der Tat ein seltsamer Fehler, der durch Multidexing Ihrer App verursacht werden kann. Verwenden Sie den folgenden Block in der build.gradle- Datei Ihrer App, um dies zu umgehen :
quelle
Ich weiß, dass es hier viele Antworten gab, aber die TL; DR-Version lautet wie folgt (wenn Sie Xamarin Studio verwenden):
Options
Android Build
Advanced
Registerkartex86
/armeabi-v7a
/armeabi
).quelle
Diese Lösung hat bei mir funktioniert. Versuchen Sie dies, und fügen Sie der build.gradle- Datei Ihrer App die folgenden Zeilen hinzu
quelle
Auf Android 8:
es gibt INSTALL_FAILED_NO_MATCHING_ABIS, versuchen Sie es auf 2.5 oder 2.6 zu ändern und es wird funktionieren oder es auskommentieren.
quelle
Der Kommentar von @ enl8enmentnow sollte eine Antwort sein, um das Problem mithilfe von genymotion zu beheben:
quelle
das hat bei mir funktioniert ... Android> Gradle Scripts> build.gradle (Modul: App) in Android hinzufügen *
quelle
Visual Studio Mac - Sie können die Unterstützung hier ändern:
quelle
Ich hatte dieses Problem mit der BitcoinJ-Bibliothek (org.bitcoinj: bitcoinj-core: 0.14.7), die build.gradle (in der Modul-App) eine Paketoption innerhalb des Android-Bereichs hinzugefügt hat. Es hat mir geholfen.
quelle
In meinem Fall wurde in einem Xamarin-Projekt in Visual Studio ein Fehler behoben, der durch Auswahl von Eigenschaften -> Android-Optionen behoben wurde, und aktivieren Sie die Option Laufzeiten freigeben und Schnelle Bereitstellung verwenden, in einigen Fällen eine davon
quelle
Für genymotion auf dem Mac wurde beim Installieren meiner apk der Fehler INSTALL_FAILED_NO_MATCHING_ABIS angezeigt.
In meinem Projekt gab es kein "APP_ABI", aber ich habe es entsprechend hinzugefügt und es hat nur eine Apk für beide Architekturen erstellt, aber es hat funktioniert. https://stackoverflow.com/a/35565901/3241111
quelle
In der Visual Studio Community Edition 2017 funktioniert die Auswahl der unterstützten ABIs aus den Android-Optionen manchmal nicht.
Stellen Sie in diesem Fall sicher, dass die .csproj-Datei die folgende Zeile und keine doppelten Zeilen in denselben Build-Konfigurationen enthält.
Um zu bearbeiten,
quelle
Wenn Sie alles oben ausprobiert haben und trotzdem den gleichen Fehler "Weil ich dieses Problem bereits habe" haben, überprüfen Sie im Grunde, welche .jar oder .aar oder welches Modul, das Sie hinzugefügt haben, möglicherweise die einzige Bibliothek ist, die ndk verwendet, und diese unterstützt 8.0 nicht (Oreo) +, ebenfalls verwende ich die Microsoft SignalR-Socket-Bibliothek und füge ihre .jar-Dateien hinzu. Später habe ich herausgefunden, dass die App nicht in Oreo installiert ist. Danach entferne ich diese Bibliothek, da derzeit keine Lösung auf der Git-Seite vorhanden ist und ich mich für eine andere entscheide .
Überprüfen Sie daher die von Ihnen verwendete Bibliothek und suchen Sie danach, wenn Sie diese dringend benötigen.
quelle
Ich hatte dieses Problem, als ich von Android 7 (Nougat) auf Android 8 (Oreo) umgestiegen bin.
Ich habe verschiedene oben aufgeführte Wege ausprobiert und zu meinem Pech hat nichts funktioniert.
Also habe ich die APK - Datei zu ZIP - Datei extrahiert es geändert und gefunden lib Ordner mit dem diese Datei war /x86_64/darwin/libscrypt.dylib so diese zu entfernen , habe ich ein Code in meinem build.gradle Modul unter Android Abschnitt (dh )
Cheers Problem gelöst
quelle
Im Allgemeinen, um herauszufinden, welche Bibliotheksabhängigkeit eine inkompatible ABI aufweist,
Sie können versuchen, die Version zu aktualisieren / diese Bibliotheken zu entfernen / zu ersetzen, um INSTALL_FAILED_NO_MATCHING_ABIS bei der Installation des apk-Problems zu lösen
quelle
Das ist mir passiert. Ich habe den SDK-Manager überprüft und festgestellt, dass derjenige, den ich verwendet habe, ein Update hatte. Ich habe es aktualisiert und das Problem ging weg.
quelle
Ziemlich spät, aber gerade darauf gestoßen. Dies ist für
Xamarin.Android
. Stellen Sie sicher, dass Sie nicht versuchen, im Release-Modus zu debuggen. Ich erhalte genau den gleichen Fehler, wenn ich mich im Release-Modus befinde und versuche zu debuggen. Durch einfaches Umschalten von Release auf Debug konnte Mine ordnungsgemäß installiert werden.quelle
In meinem Fall musste ich die x86-Version der Anwendung herunterladen.
quelle
In meinem Fall helfen mir die folgenden Optionen
quelle