質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Kivy

Kivyは、Pythonを用いたNUI開発のためのオープンソースフレームワーク。マルチタッチなど多くの入力に対応したNUIアプリなどを開発することができます。多くの環境で動作するクロスプラットフォームです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

2223閲覧

buildozerで作成したkivyアプリケーションでPillowが使用できない

ulthar

総合スコア8

Kivy

Kivyは、Pythonを用いたNUI開発のためのオープンソースフレームワーク。マルチタッチなど多くの入力に対応したNUIアプリなどを開発することができます。多くの環境で動作するクロスプラットフォームです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2021/09/17 02:00

現在KivyおよびKivyMDで作成したアプリケーションをAndroid用のAPKにしようと四苦八苦しています。
環境は
Buildozer 1.2.0
macOS Mojave 10.14.6
Android 10
です。

調べていくうちに、KivyMDにPillowが必要だということで、buildozer.specのrequirementsにPillowを追加して再度パッケージングしたのですが、パッケージングまでは正常に終了するにも関わらず、作成されたAPKは

ModuleNotFoundError: No module named 'PIL'

で弾かれます。 pipenv環境を試したり、buildozerをmaster、developで変えたりなどしましたが解決の糸口が見つからず困っています。 解決方法をお教えください。

以下に必要そうな情報を載せます。不足していたら教えてください。

buildozer.spec

# (str) Title of your application title = Jimaku # (str) Package name package.name = jimaku # (str) Package domain (needed for android/ios packaging) package.domain = jp.ultharpython # (list) Source files to include (let empty to include all the files) source.include_exts = py,png,jpg,kv,atlas,ttf # (list) Application requirements # comma separated e.g. requirements = sqlite3,kivy requirements = python3,kivy==2.0.0,kivymd==0.104.2,sdl2_ttf == 2.0.15,Pillow # (str) python-for-android branch to use, defaults to master #p4a.branch = develop

androidで実行時に
adb logcat -s python
で出力されたlog

09-17 10:55:41.636 11447 11481 I python : Android kivy bootstrap done. __name__ is __main__ 09-17 10:55:41.636 11447 11481 I python : AND: Ran string 09-17 10:55:41.636 11447 11481 I python : Run user program, change dir and execute entrypoint 09-17 10:55:41.637 11447 11481 I python : <built-in function getcwd> 09-17 10:55:41.711 11447 11481 I python : [WARNING] [Config ] Older configuration version detected (0 instead of 21) 09-17 10:55:41.711 11447 11481 I python : [WARNING] [Config ] Upgrading configuration in progress. 09-17 10:55:41.714 11447 11481 I python : [INFO ] [Logger ] Record log in /data/user/0/jp.ultharpython.jimaku/files/app/.kivy/logs/kivy_21-09-17_0.txt 09-17 10:55:41.714 11447 11481 I python : [INFO ] [Kivy ] v2.0.0 09-17 10:55:41.714 11447 11481 I python : [INFO ] [Kivy ] Installed at "/data/user/0/jp.ultharpython.jimaku/files/app/_python_bundle/site-packages/kivy/__init__.pyc" 09-17 10:55:41.714 11447 11481 I python : [INFO ] [Python ] v3.8.9 (default, Sep 17 2021, 10:42:34) 09-17 10:55:41.714 11447 11481 I python : [Clang 8.0.2 (https://android.googlesource.com/toolchain/clang 40173bab62ec7462 09-17 10:55:41.714 11447 11481 I python : [INFO ] [Python ] Interpreter at "" 09-17 10:55:41.716 11447 11481 I python : [INFO ] [KivyMD ] 0.104.2, git-bc7d1f5, 2021-06-06 (installed at "/data/user/0/jp.ultharpython.jimaku/files/app/_python_bundle/site-packages/kivymd/__init__.pyc") 09-17 10:55:41.718 11447 11481 I python : [INFO ] [Factory ] 186 symbols loaded 09-17 10:55:42.451 11447 11481 I python : [INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2 (img_pil, img_ffpyplayer ignored) 09-17 10:55:42.470 11447 11481 I python : [INFO ] [Text ] Provider: sdl2 09-17 10:55:42.653 11447 11481 I python : [INFO ] [Window ] Provider: sdl2 09-17 10:55:42.669 11447 11481 I python : [INFO ] [GL ] Using the "OpenGL ES 2" graphics system 09-17 10:55:42.669 11447 11481 I python : [INFO ] [GL ] Backend used <sdl2> 09-17 10:55:42.669 11447 11481 I python : [INFO ] [GL ] OpenGL version <b'OpenGL ES 3.2 V@415.0 (GIT@34b6654, Id4a1c1aeea, 1569595379) (Date:09/27/19)'> 09-17 10:55:42.670 11447 11481 I python : [INFO ] [GL ] OpenGL vendor <b'Qualcomm'> 09-17 10:55:42.670 11447 11481 I python : [INFO ] [GL ] OpenGL renderer <b'Adreno (TM) 630'> 09-17 10:55:42.670 11447 11481 I python : [INFO ] [GL ] OpenGL parsed version: 3, 2 09-17 10:55:42.670 11447 11481 I python : [INFO ] [GL ] Texture max size <16384> 09-17 10:55:42.670 11447 11481 I python : [INFO ] [GL ] Texture max units <16> 09-17 10:55:42.695 11447 11481 I python : [INFO ] [Window ] auto add sdl2 input provider 09-17 10:55:42.696 11447 11481 I python : [INFO ] [Window ] virtual keyboard not allowed, single mode, not docked 09-17 10:55:42.761 11447 11481 I python : Traceback (most recent call last): 09-17 10:55:42.761 11447 11481 I python : File "/Users/shogo/Desktop/shogo/kivy/jimaku/.buildozer/android/app/main.py", line 6, in <module> 09-17 10:55:42.761 11447 11481 I python : File "/Users/shogo/Desktop/shogo/kivy/jimaku/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/jimaku/kivymd/uix/__init__.py", line 8, in <module> 09-17 10:55:42.761 11447 11481 I python : File "/Users/shogo/Desktop/shogo/kivy/jimaku/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/jimaku/kivymd/uix/behaviors/__init__.py", line 10, in <module> 09-17 10:55:42.761 11447 11481 I python : File "/Users/shogo/Desktop/shogo/kivy/jimaku/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/jimaku/kivymd/uix/behaviors/backgroundcolor_behavior.py", line 25, in <module> 09-17 10:55:42.762 11447 11481 I python : File "/Users/shogo/Desktop/shogo/kivy/jimaku/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/jimaku/kivymd/uix/behaviors/elevation.py", line 364, in <module> 09-17 10:55:42.762 11447 11481 I python : ModuleNotFoundError: No module named 'PIL' 09-17 10:55:42.762 11447 11481 I python : Python for android ended.

多くなって申し訳ありませんが助言お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自分は以前に開発PCからAndroid端末への転送がうまくいってない事に気付かずに作業を続けていて、いくらPC側で修正してもAndroid側では古いままのアプリが実行されてずっと同じエラーが出続ける、なんて事があったのでその線を疑ってみるのはありかもです。具体的な手順としては

  1. 開発PCでapkのbuild時にちゃんと成功したと言っているかの確認
  2. Androidへのinstall時に何か言っていないかの確認。(例えばadb logcat | grep "jp.ultharpython.jimaku"などとして)
  3. 2で手がかりが得られないようならAndroid端末を操作してアプリをuninstallして再度buildozerコマンドを実行してinstall
  4. それで駄目なら.buildozerディレクトリを削除してAndroid側のアプリもuninstallしてゼロからbuildし直す(これに関しては既に何度もしてるかもしれませんが)

みたいな感じで。

投稿2021/09/17 06:41

編集2021/09/17 10:09
gottadiveintopy

総合スコア736

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ulthar

2021/09/21 01:32

ありがとうございます。返答が遅くなりました。少なくとも、3、4に関しては何度か行なっているのでAndroid側のインストールは無事にできていると思います。 現在自宅のWinPCにUbuntuの仮想環境を入れてそちらで試しています。 根本的な解決にはなりませんがそれで成功した場合はまた報告したいと思います。
guest

0

自己解決

自己解決...はしていませんが、全く同じプログラム、buildozer.specファイルをつかって
Windows10上にVirtualBoxでUbuntu20.04を構築し、一からととのえた環境ではエラーなくdebug & deployでき、さらにandroidで起動することができました。
直接的な解決にはいたっていませんが、当初挑戦していた環境がかなり汚かったことが原因のようです。

投稿2021/09/21 15:14

ulthar

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問