J'ai essayé d'installer mon application dans Android L Preview Intel Atom Virtual Device, elle a échoué avec l'erreur:
INSTALL_FAILED_NO_MATCHING_ABIS
Qu'est-ce que ça veut dire?
J'ai essayé d'installer mon application dans Android L Preview Intel Atom Virtual Device, elle a échoué avec l'erreur:
INSTALL_FAILED_NO_MATCHING_ABIS
Qu'est-ce que ça veut dire?
Réponses:
INSTALL_FAILED_NO_MATCHING_ABIS
c'est lorsque vous essayez d'installer une application qui a des bibliothèques natives et qui n'a pas de bibliothèque native pour votre architecture de processeur. Par exemple, si vous avez compilé une application pour armv7 et que vous essayez de l'installer sur un émulateur qui utilise l' architecture Intel , cela ne fonctionnera pas.
INSTALL_FAILED_NO_MATCHING_ABIS, c'est lorsque vous essayez d'installer une application qui possède des bibliothèques natives et qui n'a pas de bibliothèque native pour votre architecture de processeur. Par exemple, si vous avez compilé une application pour armv7 et que vous essayez de l'installer sur un émulateur qui utilise l'architecture Intel à la place, cela ne fonctionnera pas.
Utilisation de Xamarin sur Visual Studio 2015. Résolvez ce problème en:
Sous "Architectures prises en charge", vérifiez les éléments suivants:
enregistrer
Edit: Cette solution a également été signalée comme fonctionnant sur Visual Studio 2017 .
Edit 2: Cette solution a également été signalée comme fonctionnant sur Visual Studio 2017 pour Mac .
Je poste une réponse d'un autre fil parce que c'est ce qui a bien fonctionné pour moi, l'astuce est d'ajouter le support pour les deux architectures:
Publier cela parce que je n'ai pas pu trouver de réponse directe et j'ai dû regarder quelques articles différents pour obtenir ce que je voulais faire ...
J'ai pu utiliser l'émulateur x86 Accelerated (HAXM) en l'ajoutant simplement au script build.gradle de mon module dans le bloc android {}:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
Exécutez (build) ... Maintenant, il y aura (yourapp) -x86-debug.apk dans votre dossier de sortie. Je suis sûr qu'il existe un moyen d'automatiser l'installation lors de l'exécution, mais je démarre simplement mon émulateur HAXM préféré et j'utilise la ligne de commande:
adb install (yourapp)-x86-debug.apk
(yourapp)-x86-debug.apk
fichier dans la sortie de mon projet.
Si vous utilisez Genymotion, vous devez installer ARM Translation et GApps
Il s'agit en effet d'une étrange erreur qui peut être causé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 a eu beaucoup de réponses ici, mais la version TL; DR est la suivante (si vous utilisez Xamarin Studio):
Options
Android Build
Advanced
ongletx86
/ armeabi-v7a
/ armeabi
)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 le commentera.
Le commentaire de @ enl8enmentnow devrait être une réponse pour résoudre le problème en utilisant genymotion:
Si vous rencontrez ce problème sur Genymotion même lorsque vous utilisez le traducteur ARM, c'est parce que vous créez un périphérique virtuel x86 comme le Google Nexus 10. Choisissez plutôt un périphérique virtuel ARM, comme l'une des tablettes personnalisées.
cela a fonctionné pour moi ... Android> Scripts Gradle> build.gradle (Module: app) ajouter à l'intérieur d'Android *
android {
// compileSdkVersion 27
defaultConfig {
//
}
buildTypes {
//
}
// buildToolsVersion '27.0.3'
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) ajoutée à build.gradle (dans l'application du module) une option de packaging dans la portée Android. ça m'a aidé.
android {
...
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
}
Pour genymotion sur mac, j'obtenais une erreur INSTALL_FAILED_NO_MATCHING_ABIS lors de l'installation de mon apk.
Dans mon projet, il n'y avait pas d '"APP_ABI" mais je l'ai ajouté en conséquence et il n'a créé qu'une seule apk pour les deux architectures mais cela a fonctionné. https://stackoverflow.com/a/35565901/3241111
Dans l'édition 2017 de Visual Studio Community, la sélection des ABI pris en charge dans les options Android ne fonctionne parfois pas.
Dans ce cas, vérifiez que le fichier .csproj a la ligne suivante et aucune ligne en double dans les mêmes configurations de build.
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>
Afin de modifier,
Fondamentalement, si vous avez tout essayé ci-dessus et que vous avez toujours la même erreur "Parce que je fais face à ce problème avant aussi", vérifiez quel .jar ou .aar ou module que vous avez ajouté peut être la seule bibliothèque utilisant ndk, et que celle-ci ne prend pas en charge 8.0 (Oreo) +, j'utilise également la bibliothèque de sockets Microsoft SignalR en ajoutant ses fichiers .jar et, enfin, j'ai découvert que l'application ne s'installe pas dans Oreo, puis je supprime cette bibliothèque car il n'y a actuellement aucune solution sur sa page git et j'en choisis une autre .
Veuillez donc vérifier la bibliothèque que vous utilisez et rechercher à ce sujet si vous en aviez vraiment besoin.
J'ai rencontré ce problème lors du passage d'Android 7 (Nougat) à Android 8 (Oreo).
J'ai essayé plusieurs façons énumérées ci-dessus et à ma malchance, rien n'a fonctionné.
J'ai donc changé le fichier .apk en fichier .zip, je l'ai extrait et j'ai trouvé le dossier lib avec lequel ce fichier était là /x86_64/darwin/libscrypt.dylib donc pour le supprimer j'ai ajouté un code dans mon module build.gradle sous la section android (ie )
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
Problème de santé résolu
En général, pour savoir quelle dépendance de bibliothèque a ABI incompatible,
Vous pouvez essayer de mettre à niveau la version / supprimer / remplacer ces bibliothèques pour résoudre INSTALL_FAILED_NO_MATCHING_ABIS lors de l'installation du problème apk
Cela m'est arrivé. J'ai vérifié le SDK Manager et il m'a dit que celui que j'utilisais avait une mise à jour. Je l'ai mis à jour et le problème a disparu.
Assez tard, mais je suis juste tombé là-dessus. C'est pour Xamarin.Android
. Assurez-vous que vous n'essayez pas de déboguer en mode release. J'obtiens exactement la même erreur en mode de libération et en essayant de déboguer. Le simple passage de la version au débogage a permis au mien de s'installer correctement.
Dans mon cas, j'avais besoin de télécharger la version x86 de l'application.