Glisser et déposer un package Android * .APK dans un AVD (Android Virtual Device) génère une erreur cryptique:
The APK failed to install.
Error: Could not parse error string
Les sources inconnues sont autorisées
Android.api = 24
Android.minapi = 24
Android.sdk = 24
CEPENDANT, si je télécharge le même fichier APK sur mon appareil Android actuel, CELA FONCTIONNE! Non seulement cela installe-t-il, mais il ouvre et exécute mon application correctement sans erreurs
Cela me dit que c'est peut-être parce que votre application utilise des bibliothèques natives qui ne correspondent pas à l'architecture de l'émulateur CPU (voir cette question )
Pour obtenir un message d'erreur plus détaillé, installez votre application via un terminal:
adb install path_to_your_app/name_of_your_app.apk
Vous pourriez voir ceci:
adb: failed to install name_of_your_app.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries
Je devais créer un nouvel apk avec un VersionCode plus élevé que l'application actuellement installée.
Mon simulateur possédait la version 8 et, lorsque j'essayais d'installer un nouvel apk avec la même version, l'erreur que vous avez mentionnée commençait. La solution consistait donc à augmenter le code de version et à générer un nouvel apk.
Faites-le dans le fichier build.gradle (Module: App)
Android {
defaultConfig {
versionCode 9 <---
versionName "1.1.0"
...
}
...
}
Une autre solution consiste à désinstaller l'application actuelle et à installer le nouvel apk.
Je faisais face au même problème. Le problème est que si la même application est déjà installée avec la même version sur l'émulateur, elle ne sera pas mise à jour/installée et la même erreur sera générée.
Essayez les solutions suivantes pour résoudre ce problème.
Désinstallez l'ancien APK de Emulator, puis faites glisser le nouvel APK et déposez-le, il installerait l'application
Modifiez le fichier numéro de version à partir du fichier Build.gradle comme suggéré par @ Chuy47, créez le nouvel APK et installez-le.
J'espère que ça aide.
Pour moi, l'image du système d'émulateur sur Android 9 (API 28), la désactivation de Google Play Protect à partir de l'application Play Store a fonctionné, et j'ai pu supprimer l'erreur d'analyse.
Pour désactiver Google Play Protect. Ouvrez l'application "Play Store" => tapez sur sur le bouton Menu => sélectionnez l'option "Play Protect" => Désactivez les options "Analyser le périphérique pour détecter les menaces à la sécurité".
Après avoir moi-même longtemps souffert de ce problème après avoir construit un apk avec p4a
en utilisant l'indicateur armeabi-v7a
, j'ai découvert le problème, comme indiqué dans @Melquiades answer, l'émulateur par défaut utilise l'architecture x86
; .
La solution consiste à créer votre apk pour x86
, ce que vous pouvez faire en le spécifiant dans la commande de création p4a
à l'aide de l'indicateur Arch - --Arch=x86
. Vous pouvez voir les options disponibles ici: https://github.com/kivy/python-for-Android/blob/master/pythonforandroid/archs.py
Personnellement, exécuter python3crystax
ndk avec un indicateur autre que armeabi-v7a
n'a pas permis de trouver les fichiers binaires appropriés. L'exécution à l'aide de python3 et du ndk Android a également échoué pour toutes les architectures.
Si vous utilisez python3
et souhaitez construire pour toutes les architectures, vous pouvez utiliser buildozer
. Spécifiez python3crystax
dans la configuration requise pour buildozer.spec
, liez le répertoire ndk sur la ligne Android.ndk_path
et spécifiez l'architecture choisie sur la ligne.
# (str) The Android Arch to build for, choices: armeabi-v7a, arm64-v8a, x86
Android.Arch = x86
installez python 3.5 en suivant ce tutoriel: https://tecadmin.net/install-python-3-5-on-ubuntu/ . Vous devrez peut-être rétrograder ou mettre à niveau votre version cython
, selon votre configuration actuelle. Notez que 0.27, 0.27.2 ne fonctionnent pas avec Kivy. J'ai trouvé que Cython 0.25.2 fonctionnait pour moi. Vous pouvez supprimer votre version précédente et installer votre choix avec:
Sudo pip3 install -U --force-reinstall cython=0.25.2
Si vous utilisez Ubuntu bien sûr :)
Et voila. Vous devez créer plusieurs apks pour les différentes architectures en modifiant l'option Arch
dans votre buildozer.spec
et en exécutant buildozer Android debug
pour chaque architecture. Vous pouvez toujours publier sur le Play Store car Google a la possibilité de télécharger plusieurs apks: https://developer.Android.com/google/play/publishing/multiple-apks .
Bonne chance; p
MODIFIER les commandes python pour Android à l'aide de SDK 20 / API 26 / NDK 15c / Python 3.7
et SDK 20 / API 24 / NDK 14b / Python 3.7
fonctionnent. Je n'ai pas personnellement testé ce dernier, mais vous trouverez plus d'informations dans cet article python-for-Android . Après avoir testé le premier, je peux vérifier que cela fonctionne mais ne prend pas en charge sqlite3
.
Faire ce qui suit a semblé résoudre le problème:
buildozer.spec
(biuldozer ne prend pas en charge tous les SDK)J'ai réussi à résoudre ce problème en renommant le fichier apk et en veillant à ce que:
J'espère que ça vous aide.
Cela a fonctionné pour moi .....
Pouvez-vous vérifier la version minimale de sdk pour cette application? Et la version Android de vos appareils virtuels
La version AVD doit être supérieure ou égale à la version sdk minimale de l'application.
Si c'est le cas, essayez d'activer le débogage USB.