Après avoir passé un assez long moment à souffrir de ce problème moi-même après avoir construit un apk en utilisant p4a
en utilisant le armeabi-v7a
flag, j'ai découvert le problème, comme indiqué dans la réponse de @Melquiades, l'émulateur par défaut utilise x86
donc, bien sûr, il ne sera pas compatible.
La solution est de construire votre apk pour x86
ce que vous pouvez faire en le spécifiant dans l'option p4a
en utilisant le drapeau arch - --arch=x86
. Vous pouvez voir les options disponibles ici : https://github.com/kivy/python-for-Android/blob/master/pythonforandroid/archs.py
Personnellement, courir python3crystax
ndk avec tout autre drapeau que armeabi-v7a
n'a pas réussi à trouver les binaires appropriés. L'exécution en utilisant python3 et le ndk Android a également échoué pour toutes les architectures.
Si vous utilisez python3
et que vous souhaitez construire pour toutes les architectures, vous pouvez utiliser buildozer
. Spécifiez python3crystax
dans le buildozer.spec
vous devez lier le répertoire ndk sur le serveur de la android.ndk_path
et spécifiez l'architecture que vous avez 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/ . Il se peut que vous deviez rétrograder ou mettre à niveau votre cython
version, en fonction de votre configuration actuelle. Notez que les versions 0.27 et 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 celle que vous avez choisie avec :
sudo pip3 install -U --force-reinstall cython=0.25.2
Si vous êtes sous Ubuntu, bien sûr :)
Et voilà, vous l'avez. Vous devrez créer plusieurs apks pour les différentes architectures en modifiant l'option arch
dans votre buildozer.spec
et en cours d'exécution 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
EDIT les commandes python-for-Android à l'aide de SDK 20 / API 26 / NDK 15c / Python 3.7
et SDK 20 / API 24 / NDK 14b / Python 3.7
travail. Je n'ai pas personnellement testé ce dernier, mais vous trouverez plus d'informations à ce sujet sur le site suivant post python-for-Android . Ayant testé le premier, je peux vérifier qu'il fonctionne mais ne supporte pas sqlite3
.
0 votes
Je suis également confronté à ce problème, mais ce problème provient des versions oreo récemment mises à jour, je suppose qu'il est lié à la sécurité, disant que nos applications ne sont pas vérifiées (la chaîne est liée à notre nom de paquet, je suppose) et pour assurer la sécurité de nos appareils, ils ne sont pas installer manuellement dans les appareils Android - montrant le risque de sécurité par play protect.
0 votes
J'utilisais Nougat, ce n'est pas avant Oreo ? Et j'autorise les sources inconnues