J'ai essayé d'installer mon application sur un périphérique virtuel Android L Preview Intel Atom. Elle a échoué avec l'erreur suivante:
INSTALL_FAILED_NO_MATCHING_ABIS
Qu'est-ce que ça veut dire?
INSTALL_FAILED_NO_MATCHING_ABIS
est le moment où vous essayez d'installer une application qui possède des bibliothèques natives et qui ne possède pas de bibliothèque native pour votre architecture cpu. Par exemple, si vous avez compilé une application pour armv7 et essayez de l’installer sur un émulateur qui utilise l’architecture Intel , cela ne fonctionnera pas.
INSTALL_FAILED_NO_MATCHING_ABIS s’applique lorsque vous essayez d’installer une application avec des bibliothèques natives et qu’elle n’a pas de bibliothèque native pour votre architecture cpu. Par exemple, si vous avez compilé une application pour armv7 et tentez de l'installer sur un émulateur utilisant l'architecture Intel, cela ne fonctionnera pas.
Utilisation de Xamarin sous Visual Studio 2015. Résoudre ce problème en:
Sous "Architectures prises en charge", cochez la case suivante:
enregistrer
Modifier: Cette solution fonctionne également sous Visual Studio 2017.
Edit 2: Cette solution fonctionne sous/ Visual Studio 2017 pour Mac .
Je poste une réponse à partir d'un autre fil parce que c'est ce qui a bien fonctionné pour moi, l'astuce consiste à ajouter un support pour les deux architectures:
Afficher ceci parce que je ne pouvais pas trouver de réponse directe et que je devais examiner plusieurs messages différents pour obtenir ce que je voulais faire ...
J'ai pu utiliser l'émulateur x86 Accelerated (HAXM) en l'ajoutant simplement au bloc de script build.gradle de mon module Inside Android {}:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
Run (build) ... Maintenant, il y aura un (yourapp) -x86-debug.apk dans votre dossier de sortie. Je suis sûr qu'il existe un moyen d'automatiser l'installation sous Exécuter, mais je viens de démarrer mon émulateur HAXM préféré et d'utiliser la ligne de commande:
adb install (yourapp)-x86-debug.apk
Si vous utilisez Genymotion, vous avez besoin Installation de ARM Translation and GApps
Il s'agit en effet d'une erreur étrange qui peut être provoquée par le multidexing de votre application. Pour le contourner, utilisez le bloc suivant dans le fichier build.gradle de votre application:
Android {
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
...[rest of your gradle script]
Je sais qu'il y avait beaucoup de réponses ici, mais la version TL; DR est la suivante (Si vous utilisez Xamarin Studio):
Options
Android Build
Advanced
x86
/armeabi-v7a
/armeabi
)Le commentaire de @ enl8enmentnow devrait être une réponse pour résoudre le problème en utilisant genymotion:
Si vous rencontrez ce problème sous Genymotion, même si vous utilisez le traducteur ARM, vous créez un périphérique virtuel x86 tel que Google Nexus 10. Choisissez plutôt un périphérique virtuel ARM, comme l'une des tablettes personnalisées. .
Cette solution a fonctionné pour moi. Essayez ceci, ajoutez les lignes suivantes dans le fichier build.gradle de votre application.
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
j'ai eu ce problème en utilisant la bibliothèque BitcoinJ (org.bitcoinj: bitcoinj-core: 0.14.7).
Android {
...
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
}
Sur Android 8:
Apache.commons.io:2.4
cela donne INSTALL_FAILED_NO_MATCHING_ABIS, essayez de le changer en 2.5 ou 2.6 et cela fonctionnera ou commentera.
Dans l'édition 2017 de Visual Studio Community, la sélection des ABI prises en charge à partir des options Android ne fonctionne pas.
Dans ce cas, vérifiez que .csproj a la ligne suivante et aucune ligne en double dans les mêmes configurations de construction.
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>
Pour éditer,
Pour genymotion sur mac, je rencontrais une erreur INSTALL_FAILED_NO_MATCHING_ABIS lors de l'installation de mon apk.
Dans mon projet, il n'y avait pas "APP_ABI" mais je l'ai ajouté en conséquence et il n'a construit qu'un apk pour les deux architectures, mais cela a fonctionné . https://stackoverflow.com/a/35565901/3241111
Assez tard, mais juste couru dans cela. Ceci est pour Xamarin.Android
. Assurez-vous que vous n'essayez pas de déboguer en mode release. Je reçois exactement la même erreur si je suis en mode de publication et que je tente de déboguer. Le simple fait de passer de release à debug a permis à la mienne de s’installer correctement.
Dans mon cas, j'avais besoin de télécharger la version x86 de l'application.
En gros, si vous avez essayé Tout ci-dessus et que vous avez toujours la même erreur "Parce que je suis déjà confronté à ce problème aussi", vérifiez quel .jar ou .aar ou module que vous avez ajouté est peut-être celle qui utilise ndk, et celle-ci ne supporte pas 8.0 (Oreo) +, de même, j'utilise Microsoft SignalR socket Library en ajoutant ses fichiers .jar et, dernièrement, j'ai découvert que l'application ne s'installait pas à Oreo, puis je retirais cette bibliothèque car, à l'heure actuelle, il n'y avait pas de solution sur sa page git. .
Veuillez donc vérifier la bibliothèque que vous utilisez et effectuer une recherche à ce sujet si vous en aviez grand besoin.
J'ai rencontré ce problème lorsque je suis passé d'Android 7(Nougat) à Android 8 (Oreo).
J'ai essayé plusieurs manières énumérées ci-dessus et à ma mauvaise fortune rien n'a fonctionné.
J'ai donc changé le fichier .apk en fichier .Zip extrait et trouvé le dossier lib avec lequel ce fichier était là /x86_64/darwin/libscrypt.dylib afin de le supprimer, j'ai ajouté code dans mon module build.gradle sous la section Android (c'est-à-dire)
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
Cheers problème résolu
Cela m'est arrivé J'ai vérifié le gestionnaire de SDK et il m'a dit que celui que j'utilisais avait une mise à jour. Je l'ai mis à jour et le problème est parti.