Préambule

De nombreuses adaptations doivent être effectuées sur le système pour pouvoir compiler le code en application, aussi il est largement conseillé de travailler sur machine virtuelle.

Installation de la VM

  • Installer une Lubuntu de base sur un disque dur de 20 Go avec un accès par Pont sur le réseau (10 Go est insuffisant). Après installation, il reste un peu plus de 6 Go.
  • Suite à l’installation mettre à jour la distribution :
    • sudo apt update
    • sudo apt dist-upgrade
    • Redémarrer pour prise en compte (plus agréable)
  • Installer l’accès distant et quelques outils
    • sudo apt install openssh-server
    • sudo apt install net-tools
  • Installer les compléments de VirtualBox
    • Une fois Lubuntu démarré, cliquer Périphériques -> Installer l’image CD des additions Invités.
    • Monter le CD-ROM
    • Se rendre sur le répertoire lié au montage de ce dernier
      cd /media/eric/VBox_GAs_5.2.34/
    • Installer les dépendances nécessaires avec la commande :
      sudo apt-get install -y dkms build-essential linux-headers-generic linux-headers-$(uname -r)
    • Se mettre en root : sudo su.
    • Installer le package à l’aide de la commande : ./VBoxLinuxAdditions.run.
    • Redémarrer pour prise en compte (plus agréable)

Installation de Kivy

Utilisant Ubuntu, j’ai effectué l’installation par :
https://kivy.org/doc/stable/installation/installation-linux.html#ubuntu-kubuntu-xubuntu-lubuntu-saucy-and-above

Voici le résumé de ce qui a été effectué :

sudo add-apt-repository ppa:kivy-team/kivy
Appuyer sur ENTREE pour valider l'ajout
sudo apt-get update
sudo apt-get install python3-kivy

Déterminer la version de Kivy

eric@eric-PC:~$ python3
Python 3.6.9 (default, Nov  7 2019, 10:44:02) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import kivy;
[WARNING] [Config      ] Older configuration version detected (0 instead of 21)
[WARNING] [Config      ] Upgrading configuration in progress.
[INFO   ] [Logger      ] Record log in /home/eric/.kivy/logs/kivy_20-03-20_0.txt
[INFO   ] [Kivy        ] v1.11.1
[INFO   ] [Kivy        ] Installed at "/usr/lib/python3/dist-packages/kivy/__init__.py"
[INFO   ] [Python      ] v3.6.9 (default, Nov  7 2019, 10:44:02) 
[GCC 8.3.0]
[INFO   ] [Python      ] Interpreter at "/usr/bin/python3"

Premier code

import kivy
kivy.require('1.11.1') # replace with your current kivy version !

from kivy.app import App
from kivy.uix.label import Label


class MyApp(App):

    def build(self):
        return Label(text='Hello world')


if __name__ == '__main__':
    MyApp().run()

Ce qui a conduit à de nombreuses erreurs.

[CRITICAL] [Window      ] Unable to find any valuable Window provider. Please enable debug logging (e.g. add -d if running from the command line, or change the log level in the config) and re-run your app to identify potential causes
egl_rpi - ImportError: cannot import name 'bcm'

L’ensemble a été résolu par l’installation du package python3-sdl2

sudo apt install python3-sdl2

Premiers pas

Lorsque l’on débute un langage, la première chose à connaître est comment faire du debugging ou du moins avoir de l’information surtout au travers d’une interface graphique.

from kivy.logger import Logger

Logger.info("Info: RootWidget")

Va permettre d’afficher :

Avancées dans le tutoriel

Pour bénéficier des exemples de Kivy, il est nécessaire d’installer le package associé :

sudo apt install kivy-examples

Les exemples se trouvent alors dans :

/usr/share/kivy-example

Premiers programmes avec kv

First.zip
Second.zip
sudo apt-get install python-dev build-essential ccache git openjdk-8-jdk zlib1g-dev python-setuptools libncurses5 libstdc++6 zlib1g unzip zlib1g-dev cython python3-pip libsqlite3-dev sqlite3 libbz2-dev libssl-dev libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libncursesw5-dev  uuid-dev

ATTENTION : la compilation ne peut s’effectuer qu’avec Java version 8

sudo update-alternatives - -config java
python3.7 -m pip install - -upgrade cython

Première compilation

La compilation a nécessité l’installation des packages suivants :

  • sudo apt-get install automake autoconf libltdl-dev
     ?
    sudo apt-get install libffi-dev
  • Répertoire projet
    • mkdir project
    • cd project/
    • buildozer init
  • buildozer android debug deploy run

Placer votre fichier .py et renommer le en main.py

Dépannage

J’avais fixé la taille du disque dur à 10 Go ce qui s’est révélé insuffisant, j’ai donc eu des erreurs qui n’en sont peut être pas vraiment.

  • sdkmanager path "/home/lukasmatrix/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager" does not exist, sdkmanager is notinstalled
    • Le fichier commandlinetools-linux-6514223_latest.zip dans .buildozer/android/platform/android-sdk était corrompu, le télécharger sur https://developer.android.com/studio et contrôler son SHA256.

Aide

Accueil > Moi > Projets > [Projet Kivy - Part 1] Premier apk