0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

BuildozerをDocker Desktop(Windows)で動かそうとする試みに失敗したメモ

Posted at

Buildozerは公式ではWindows非対応なんですが、Dockerならなんとかならいかと思ってやってみてあっさり諦めたのでメモがてら供養でも

とりあえず公式のGithubにあったdockerfileを参考に作ってみた


FROM ubuntu:20.04

ENV USER="user"
ENV HOME_DIR="/home/${USER}"
ENV WORK_DIR="${HOME_DIR}/work" \
    SRC_DIR="${HOME_DIR}/src" \
    PATH="${HOME_DIR}/.local/bin:${PATH}"

RUN apt update -qq > /dev/null \
    && DEBIAN_FRONTEND=noninteractive apt install -qq --yes --no-install-recommends \
    locales && \
    locale-gen ja_JP.UTF-8  
ENV LANG ja_JP.UTF-8  
ENV LANGUAGE ja_JP:en  
ENV LC_ALL ja_JP.UTF-8  

RUN apt update -qq > /dev/null \
    && DEBIAN_FRONTEND=noninteractive apt install -qq --yes --no-install-recommends \
    autoconf \
    automake \
    build-essential \
    ccache \
    cmake \
    gettext \
    git \
    libffi-dev \
    libltdl-dev \
    libssl-dev \
    libtool \
    openjdk-13-jdk \
    patch \
    pkg-config \
    python3-pip \
    python3-setuptools \
    sudo \
    unzip \
    zip \
    zlib1g-dev

RUN useradd --create-home --shell /bin/bash ${USER}
RUN usermod -append --groups sudo ${USER}
RUN echo "%sudo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

USER ${USER}
WORKDIR ${WORK_DIR}

RUN git clone https://github.com/kivy/buildozer ${SRC_DIR}

RUN pip install --user --upgrade pip Cython==0.29.19 wheel virtualenv ${SRC_DIR} 

ENTRYPOINT ["buildozer"]

公式では予めgit cloneしておいたファイル郡をdockerfileと同じフォルダに入れておいて、そのファイルを${SRC_DIR}にコピーするような感じで作られていたが、
面倒なのでdocker環境でgit cloneするように書き換えた。

docker build . -t buildozer

これをbuildするとaptやpipによるライブラリのインストールにものすごい時間がかかった。

なんとかbuildを終えてbuildozerを使えるようになったので

main.py
from kivy.app import App
from kivy.uix.label import Label
	  
class HelloApp(App):
    def build(self):
        return Label(text='Hello World')

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

どこかから拾ってきた適当なサンプルを用意して早速実行開始。

docker run -it --rm -v %CD%:/home/user/work -v %CD%\..\buildozer_tool:/home/user/.buildozer buildozer init
docker run -it --rm -v %CD%:/home/user/work -v %CD%\..\buildozer_tool:/home/user/.buildozer buildozer android debug

必要ライブラリのダウンロード・展開からビルドまで全部勝手にやってくれますが、
とにかく凄まじいほど時間がかかります。
ダウンロード・展開にも時間がかかるので、ライブラリのダウンロード先もWindows側のフォルダにバインドしないと、
ビルドするたびにダウンロード・展開をやらかしそうだったのでコマンドラインが長い感じに・・・シンプルにしたかったのに。

しかしそのままWindowsフォルダにバインドしていると展開中に上書き確認されてしまいます。
どうやらandroid-ndk-r19cのsysroot\usr\include\linux\netfilterに大文字と小文字が違うだけの同名ファイルがあるらしく、
Windowsでは同じファイル扱いなのでこのようなことになっているようです。

NTFS自体は大文字小文字の区別には対応しているのですが、Windowsではデフォルトで無効になっているだけなので、

fsutil.exe file setCaseSensitiveInfo %CD% enable
fsutil.exe file setCaseSensitiveInfo %CD%..\buildozer_tool enable

こんな感じで有効化しておきます。

というわけでビルドまでこぎつけましたが、これがまた凄まじい時間がかかります。
正確には測ってませんが3~4時間くらい?

で、待ちに待った結果なんとかapkは作ってくれたのでBlueStacks上でインストールして起動してみたら

ロゴまでは表示されましたが、そこからすぐに終了してしまってうまくいきませんでした。

ここで心が折れました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?