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

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

ただいまの
回答率

88.03%

buildozerでandroid debug するとエラーになる

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,177

score 10

目的
Ubuntuでbuildozerを使いPythonプログラムをデバッグしapk化すること。

経緯

  • buildozerをインストール
  • buildozer.spec 編集
  • buildozer android debug logcatコマンドを実行
    参考サイト

実行結果

~$ buildozer android debug logcat
       :
  import imp
[WARNING]: Unable to read the NDK version from the given directory /home/ubun/.buildozer/android/platform/android-ndk-r19c.
[WARNING]: Make sure your NDK version is greater than 19. If you get build errors, download the recommended NDK 19c from https://developer.android.com/ndk/downloads/.
[WARNING]: ndk_platform doesn't exist: /home/ubun/.buildozer/android/platform/android-ndk-r19c/platforms/android-21/arch-arm
[WARNING]: Could not find toolchain subdirectory!
[WARNING]: Could not find any toolchain for arm-linux-androideabi!
Traceback (most recent call last):
  :
  File "/home/ubun/.buildozer/android/platform/python-for-android/pythonforandroid/build.py", line 408, in prepare_build_environment
    self.toolchain_version = toolchain_version
UnboundLocalError: local variable 'toolchain_version' referenced before assignment
# Command failed: /usr/local/bin/python3.8 -m pythonforandroid.toolchain create --dist_name=testapp --bootstrap=sdl2 --requirements=python3,kivy --arch armeabi-v7a --copy-libs --color=always --storage-dir="/home/ubun/.buildozer/android/platform/build-armeabi-v7a" --ndk-api=21
  :

試したこと

  • sudo で実行
  • NDKのバージョンが読み取れないと指摘されていたのでr19cのNDKに変更して実行
  • APIレベル27(Android8.1)のSDKに変更して実行
    以上の結果も同じエラーになりました。

追記
こちらリンクを参考

  • SDKのAPIレベルを20に変更
  • NDKをr17cに変更
  • main.pyと同じディレクトリにSDK,NDK,specを移動

buildozer.specの設定

android.ndk_path=/android-ndk-r17c
android.sdk_path=/android-sdk

bashrcの設定(参考)

# python for android
export ANDROIDSDK="$HOME/ProgramFiles/android-sdk/tools/bin"
export ANDROIDNDK="$HOME/ProgramFiles/android-ndk-r17c"
export ANDROIDAPI="20"
export NDKAPI="17"
export ANDROIDKVER="r17c"


main.pyのディレクトリに移動し
権限で引っかかったのでsudo buidlozer android debug deployで実行

前回のエラーを解決し今度は動いたと思ったのですが別のエラーになりました

   :
[INFO]:    -> running python3 setup.py build_ext -v
           working: error: command '/usr/bin/ccache' failed with exit status 1 Exception in thread background thread for pid 23538:
Traceback (most recent call last):

  :

  File "/home/ubun/.local/lib/python3.8/site-packages/sh.py", line 877, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_1: 

  :

  STDOUT:
warning: [options] bootstrap class path not set in conjunction with -source 1.7
1 warning
running build_ext
building 'jnius' extension
/usr/bin/ccache /android-ndk-r17c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -target armv7a-linux-androideabi21 -fomit-frame-pointer -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -mthumb -fPIC -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -target armv7a-linux-androideabi21 -fomit-frame-pointer -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -mthumb -fPIC -I/home/ubun/ProgramFiles/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Include -DANDROID -D__ANDROID_API__=21 -I/android-ndk-r17c/sysroot/usr/include/arm-linux-androideabi -I/home/ubun/ProgramFiles/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/testapp/include/python3.8 -fPIC -I/usr/lib/jvm/java-8-openjdk-amd64/include -I/usr/lib/jvm/java-8-openjdk-amd64/include/linux -I/home/ubun/ProgramFiles/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/hostpython3/desktop/hostpython3/Include -I/home/ubun/ProgramFiles/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/hostpython3/desktop/hostpython3/native-build -c jnius/jnius.c -o build/temp.linux-x86_64-3.8/jnius/jnius.o
clang: error: no such file or directory: 'jnius/jnius.c'
clang: error: no input files
error: command '/usr/bin/ccache' failed with exit status 1


  STDERR:
[INFO]:    pyjnius first build failed (as expected)                            
[INFO]:    Running cython where appropriate
[INFO]:    Cythonize jnius/jnius.pyx
[INFO]:    -> running python3 -m Cython.Build.Cythoni...(and 20 more)

           working: /usr/local/bin/python3: Error while findi...(and 100 more) Exception in thread background thread for pid 23562:
Traceback (most recent call last):

  :

  File "/home/ubun/.local/lib/python3.8/site-packages/sh.py", line 877, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_1: 
  RAN: /usr/local/bin/python3 -m Cython.Build.Cythonize ./jnius/jnius.pyx

  STDOUT:
/usr/local/bin/python3: Error while finding module specification for 'Cython.Build.Cythonize' (ModuleNotFoundError: No module named 'Cython')

  STDERR:
Traceback (most recent call last):

  :

  File "/home/ubun/.local/lib/python3.8/site-packages/sh.py", line 877, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_1: 
  RAN: /usr/local/bin/python3 -m Cython.Build.Cythonize ./jnius/jnius.pyx

  STDOUT:
/usr/local/bin/python3: Error while finding module specification for 'Cython.Build.Cythonize' (ModuleNotFoundError: No module named 'Cython')

  STDERR:
# Command failed: /usr/local/bin/python3.8 -m pythonforandroid.toolchain create --dist_name=testapp --bootstrap=sdl2 --requirements=python3,kivy --arch armeabi-v7a --copy-libs --color=always --storage-dir="/home/ubun/ProgramFiles/.buildozer/android/platform/build-armeabi-v7a" --ndk-api=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

何が原因でエラーになってるかわかりません。

詳しい方アドバイスお願いします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

pip3 ではなく pip で実行したところこの問題は解決し
別のエラーになったため投稿し直します。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 88.03%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る