Python 3 と kivy で小さなプログラムを作成しました。ここで、buildozer を使用して .apk をビルドし、Android フォンでアプリをテストしたいと考えています。すべてが機能し、電話にアプリをインストールできましたが、起動時にアプリがクラッシュしました。
エラー ログは、apk の python 環境が 3 ではなく python 2.7 であったことを明らかにしました。したがって、私の質問は、android で python 3 環境を使用して buildozer で apk を構築することは可能ですか? それとも、python2 でアプリを書き直す必要がありますか? buildozer に python3 の使用を強制するハックの可能性はありますか?
編集: inclement によって提案された手順に従いましたが、次のエラーが発生しました:
Traceback (most recent call last):
File "/usr/lib64/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/micha/python/ZugGit/ZugAppFahrt/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 747, in <module>
main()
File "/home/micha/python/ZugGit/ZugAppFahrt/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 744, in main
ToolchainCL()
File "/home/micha/python/ZugGit/ZugAppFahrt/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 323, in __init__
getattr(self, args.command)(unknown)
File "/home/micha/python/ZugGit/ZugAppFahrt/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 105, in wrapper_func
build_dist_from_args(ctx, dist, dist_args)
File "/home/micha/python/ZugGit/ZugAppFahrt/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 142, in build_dist_from_args
build_recipes(build_order, python_modules, ctx)
File "pythonforandroid/build.py", line 560, in build_recipes
recipe.build_arch(arch)
File "pythonforandroid/recipe.py", line 910, in build_arch
self.build_cython_components(arch)
File "pythonforandroid/recipe.py", line 919, in build_cython_components
command = sh.Command('python{}'.format(self.ctx.python_recipe.version))
File "/usr/lib/python2.7/site-packages/sh.py", line 788, in __init__
raise CommandNotFound(path)
sh.CommandNotFound: python3.5
# Command failed: python -m pythonforandroid.toolchain create --dist_name=zugFart --bootstrap=sdl2 --requirements=kivy==1.9.1,python3crystax --arch armeabi-v7a --copy-libs
編集 2:これは終わりのない話のようです。python3.5 をインストールすると、次のエラーが発生しました。
collect2: error: ld returned 1 exit status
error: command 'arm-linux-androideabi-gcc' failed with exit status 1
以前はエラーからエラーへと進んでいたので、コードを単純に python2.7 に変更する方がはるかに賢明ですが、今では多くの時間を費やしたので、最終的にそれを作りたいと思っています。:-)
それで、誰かがこの問題を解決する方法を知っていますか?
最後の編集:私はついに降参し、Python 2.7 で動作するようにコードを変更しました。このプロセスで私が見た良いアドバイス:先物を使用している場合は、それを buildozer ファイルの要件に追加することが必須です。そうしないと、起動時にアプリがクラッシュし、「空のモジュール」エラー メッセージが表示されます。
私のアプリが電話で動作するようになったので、私はついに満足しています:-) 私の問題を解決しようとしている inclement に感謝します。