Rapid1898
Rapid1898

Reputation: 1190

Kivy application building apk-file not possible?

i try to build an apk-file using buildozer - (i created a seperate file with the py-file called main.py, buildozer.spec - i ran the building under Ubuntu)

but when i run:

buildozer -v android debug

i get the following error after running the command (it works for sometime but at the end i get this error-message and the apk is not created)

# Command failed: /usr/bin/python3 -m pythonforandroid.toolchain create --dist_name=testKivy --bootstrap=sdl2 --requirements=python3,kivy==2.0.0,kivymd==0.104.2.dev0,pillow --arch armeabi-v7a --copy-libs --color=always --storage-dir="/mnt/c/TEMPKIVY/.buildozer/android/platform/build-armeabi-v7a" --ndk-api=21
# ENVIRONMENT:
#     SHELL = '/bin/bash'
#     WSL_DISTRO_NAME = 'Ubuntu'
#     NAME = 'Rapid1898'
#     PWD = '/mnt/c/TEMPKIVY'
#     LOGNAME = 'rapid1898'
#     MOTD_SHOWN = 'update-motd'
#     HOME = '/home/rapid1898'
#     LANG = 'C.UTF-8'
#     WSL_INTEROP = '/run/WSL/10_interop'
#     LS_COLORS = 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'
#     LESSCLOSE = '/usr/bin/lesspipe %s %s'
#     TERM = 'xterm-256color'
#     LESSOPEN = '| /usr/bin/lesspipe %s'
#     USER = 'rapid1898'
#     SHLVL = '1'
#     WSLENV = ''
#     XDG_DATA_DIRS = '/usr/local/share:/usr/share:/var/lib/snapd/desktop'
#     PATH = ('/home/rapid1898/.buildozer/android/platform/apache-ant-1.9.4/bin:/home/rapid1898/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Program '
 'Files/WindowsApps/CanonicalGroupLimited.UbuntuonWindows_2004.2021.825.0_x64__79rhkp1fndgsc:/mnt/c/Program '
 'Files/Oculus/Support/oculus-runtime:/mnt/c/Program Files (x86)/Common '
 'Files/Intel/Shared '
 'Libraries/redist/intel64/compiler:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program '
 'Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program '
 'Files/Calibre2/:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/ProgramData/chocolatey/bin:/mnt/c/Users/Polzi/AppData/Local/Programs/Python/Python37:/mnt/c/Program '
 'Files/Microsoft SQL Server/120/Tools/Binn/:/mnt/c/Program Files/Common '
 'Files/Autodesk Shared/:/mnt/c/Program Files/Git/cmd:/mnt/c/Program '
 'Files/PuTTY/:/mnt/c/Program '
 'Files/nodejs/:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Program '
 'Files/Docker/Docker/resources/bin:/mnt/c/ProgramData/DockerDesktop/version-bin:/mnt/c/Users/Polzi/AppData/Local/Programs/Python/Python39/Scripts/:/mnt/c/Users/Polzi/AppData/Local/Programs/Python/Python39/:/mnt/c/Program '
 'Files/MySQL/MySQL Shell '
 '8.0/bin/:/mnt/c/Users/Polzi/AppData/Local/Microsoft/WindowsApps:/mnt/c/Program '
 'Files/JetBrains/PyCharm '
 '2019.3.3/bin:/mnt/c/Users/Polzi/AppData/Local/GitHubDesktop/bin:/mnt/c/Program '
 'Files/JetBrains/IntelliJ IDEA '
 '2019.3.4/bin:/mnt/c/Users/Polzi/AppData/Local/atom/bin:/mnt/c/tools/dart-sdk/bin:/mnt/c/Users/Polzi/AppData/Roaming/Pub/Cache/bin:/mnt/c/flutter/bin:/mnt/c/Users/Polzi/AppData/Local/Programs/Microsoft '
 'VS Code/bin:/mnt/c/Users/Polzi/AppData/Roaming/npm:/mnt/c/Program '
 'Files/JetBrains/IntelliJ IDEA 2020.1/bin:/mnt/c/Program '
 'Files/heroku/bin:/mnt/c/xampp/php:/mnt/c/Users/Polzi/AppData/Local/Markdown '
 'Monster:/snap/bin')
#     HOSTTYPE = 'x86_64'
#     OLDPWD = '/mnt/c'
#     _ = '/home/rapid1898/.local/bin/buildozer'
#     PACKAGES_PATH = '/home/rapid1898/.buildozer/android/packages'
#     ANDROIDSDK = '/home/rapid1898/.buildozer/android/platform/android-sdk'
#     ANDROIDNDK = '/home/rapid1898/.buildozer/android/platform/android-ndk-r19c'
#     ANDROIDAPI = '27'
#     ANDROIDMINAPI = '21'
#
# Buildozer failed to execute the last command
# The error might be hidden in the log above this error
# Please read the full log, and search for it before
# raising an issue with buildozer itself.
# In case of a bug report, please add a full log with log_level = 2

This is the file i want to convert:

import kivy

from kivy.app import App
from kivy.lang import Builder
from kivy.config import Config
from kivy.core.window import Window

Window.size = (800,230)

from kivy.uix.boxlayout import BoxLayout

class LblTxt(BoxLayout):
    from kivy.properties import ObjectProperty
    theTxt = ObjectProperty(None)

class MyApp(App):
    def build(self):
        self.root = Builder.load_file('simpleForm.kv')
        return self.root

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

Why is buidling the apk-file not possible?

Upvotes: 0

Views: 502

Answers (1)

MOStudios
MOStudios

Reputation: 540

The Problem

Looking at the log, there's not much info, but I can assume from it that you were using WSL or something similar on Windows, not using an actual Ubuntu device. The reason why buildozer doesn't work, I don't know, the log doesn't go far back enough for me to find out, but it is very likely that is because WSL is not a full-fledged Linux distribution

The Solution

The solution for me was to use an online virtual machine called Google Colaboratory

Press cancel to the popup to open a new notebook

Initialize the VM by pressing Connect in the top-right part of the page

Then add a new Code Cell by pressing +Code

To set up buildozer and other commands, paste into the cell and press the play icon

!pip install buildozer
!pip install cython==0.29.19
!apt install -y \
    python3-pip \
    build-essential \
    git \
    python3 \
    python3-dev \
    ffmpeg \
    libsdl2-dev \
    libsdl2-image-dev \
    libsdl2-mixer-dev \
    libsdl2-ttf-dev \
    libportmidi-dev \
    libswscale-dev \
    libavformat-dev \
    libavcodec-dev \
    zlib1g-dev
!apt install -y \
    libgstreamer1.0 \
    gstreamer1.0-plugins-base \
    gstreamer1.0-plugins-good
!apt install build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev zlib1g-dev libssl-dev openssl libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libncursesw5-dev libffi-dev uuid-dev libffi6
!apt install libffi-dev
!pip install kivy
!apt install ldd

Then upload your files to the files page

Make another cell and run !buildozer init

Refresh the files screen by right-clicking and going to refresh

Open and edit the buildozer.spec file as you wish

Finally, make a new cell and run !buildozer -v android debug and wait for it to complete, you may need to accept a few licenses on the way

When done, refresh the file page again and then navigate to the bin directory that should now appear, press on the three dots of your apk, and press download

Upvotes: 1

Related Questions