Ich habe versucht, meine App in Android L Preview Intel Atom Virtual Device zu installieren. Dies ist mit folgendem Fehler fehlgeschlagen:
INSTALL_FAILED_NO_MATCHING_ABIS
Was bedeutet das?
Ich habe versucht, meine App in Android L Preview Intel Atom Virtual Device zu installieren. Dies ist mit folgendem Fehler fehlgeschlagen:
INSTALL_FAILED_NO_MATCHING_ABIS
Was bedeutet das?
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.
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:
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 .
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:
adb install (yourapp)-x86-debug.apk
(yourapp)-x86-debug.apk
Datei in meiner Projektausgabe finden.
Wenn Sie Genymotion verwenden, müssen Sie ARM Translation und GApps installieren
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]
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
).Auf Android 8:
apache.commons.io:2.4
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.
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 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.
android {
...
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
}
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
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.
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>
Um zu bearbeiten,
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 )
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
Cheers Problem gelöst
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
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.
In meinem Fall musste ich die x86-Version der Anwendung herunterladen.