Найти в Дзене
PlanetView

Пошаговый инструктаж. Формирование APK файла для Андройд проекта Python Kivy с помощью Buildozer

Чтобы начать делать мобильное приложение, нужно научиться делать APK файл. Начнем с простого приложения. Нам понадобится папка (у меня на рабочем столе), в папке должно быть как минимум два файла: main.py, buildozer.spec main.py - файл с кодом buildozer.spec - файл конфигурации. Создается автоматически после установки Buildozer и выполнения команды. Примеры файлов будут приложены ниже. Buildozer — это инструмент для автоматизации сборки APK файлов из Python проектов, особенно для фреймворка Kivy. Работает только на Linux. Запуск Buildozer Установка Linux в Windows с помощью WSL 1. Запуск от имени администратора WindowsPowerShell, выполнить команду wsl --install (wsl --install работает только в Windows 10 (версия 2004 и выше) и Windows 11) Перезагрузить компьютер Потребуется создать пользователя и пароль к нему, для выполнения команд 2. В проводнике переходим к папке, где лежит main.py, и нажимаем сочетание Shift+ПКМ. В контекстном меню нажмите пункт "Откройте здесь оболочку Linu

Чтобы начать делать мобильное приложение, нужно научиться делать APK файл.

Начнем с простого приложения. Нам понадобится папка (у меня на рабочем столе), в папке должно быть как минимум два файла: main.py, buildozer.spec

main.py - файл с кодом

buildozer.spec - файл конфигурации. Создается автоматически после установки Buildozer и выполнения команды. Примеры файлов будут приложены ниже.

Buildozer — это инструмент для автоматизации сборки APK файлов из Python проектов, особенно для фреймворка Kivy. Работает только на Linux.

Запуск Buildozer

Установка Linux в Windows с помощью WSL

1. Запуск от имени администратора WindowsPowerShell, выполнить команду

wsl --install

(wsl --install работает только в Windows 10 (версия 2004 и выше) и Windows 11)

Перезагрузить компьютер

Потребуется создать пользователя и пароль к нему, для выполнения команд

2. В проводнике переходим к папке, где лежит main.py, и нажимаем сочетание Shift+ПКМ. В контекстном меню нажмите пункт "Откройте здесь оболочку Linux".

3. Выполнить поочередно команды:

sudo apt update

sudo apt upgrade

Далее выполнить последовательно команды для установки зависимостей

Актуальные команды в разделе Targeting Android

sudo apt install -y git zip unzip openjdk-17-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake libffi-dev libssl-dev

pip3 install --user --upgrade Cython==0.29.33 virtualenv # the --user should be removed if you do this in a venv

# add the following line at the end of your ~/.bashrc file

export PATH=$PATH:~/.local/bin/

4. Создадим виртуальную среду

python3 -m venv ~/buildozer_venv

source ~/buildozer_venv/bin/activate

Затем выполняем установку

pip install kivy

pip install buildozer

5. Создаем настройки для сборки

buildozer init

в папке появится buildozer.spec

Вот минимальные настройки, которые нужны для приложения

[app]
title = project
package.name = game
package.domain = org.test
source.dir = .
source.include_exts = py,png,jpg
version = 1.0
requirements = python3,kivy
orientation = portrait
# Минимальные настройки Android
android.api = 30
android.minapi = 21
android.arch = arm64-v8a
# Критически важные настройки
android.gradle_download = True
android.accept_sdk_license = True
[buildozer]
log_level = 2

Минимальный код main.py

from kivy.app import App
from kivy.uix.button import Button
class MyApp(App):
def build(self):
return Button(text='Hello Android!')
if __name__ == '__main__':
MyApp().run()

Начать сборку: buildozer -v android debug

Компиляция будет долгой при первом запуске, в конце выдавало ошибку, которая начиналась так

[WARNING]: ERROR: /mnt/c/Users/Home-PC/Desktop/game/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/dists/myapp/gradlew failed!
No setup.py/pyproject.toml used, copying full private data into .apk.
Applying Java source code patches...
Applying patch: src/patches/SDLActivity.java.patch

Решение было в выполнении команды: sudo apt-get install openjdk-17-jdk

В папке bin появится файл apk, переносим его в телефон и наслаждаемся удачной сборкой, удачи в разработке :D

Еще полезная статья: https://dzen.ru/a/ZyxSA83_rGXMw8My