我正在尝试在这里的其他问题上取得一些进展-> Kivy Launcher - AttributeError: ‘MyInputs’ object has no attribute ‘get_focus_next’
我现在的意图是构建Kivy Launcher(欢迎提供关于原型化android python应用程序的方法的替代建议,但无论我是否仍想完成此操作)。但是,我遇到了一个新的障碍。适用于Android的Python在整个构建过程中都失败了很长时间,特别是失败了,如下所示。
构建命令:
p4a apk --requirements=python2,kivy --permission WRITE_EXTERNAL_STORAGE --name="R Kivy Launcher" --package=com.kivy.rkivylauncher --version=0.0.1 --android_api 28 --bootstrap=pygame --launcher --minsdk 13
错误(下面是我认为可能很重要的系统和配置):
[INFO]: Building hostpython3 for armeabi-v7a
[INFO]: -> directory context /home/Me/.local/share/python-for-android/build/other_builds/hostpython3/desktop/hostpython3
[INFO]: -> directory context /home/Me/.local/share/python-for-android/build/other_builds/hostpython3/desktop/hostpython3/native-build
[INFO]: -> running configure
working: checking for dup3... yes raceback (most recent call last):
File "/usr/lib/python3.7/queue.py", line 179, in get
self.not_empty.wait(remaining)
File "/usr/lib/python3.7/threading.py", line 288, in wait
raise RuntimeError("cannot wait on un-acquired lock")
RuntimeError: cannot wait on un-acquired lock
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/p4a", line 10, in <module>
sys.exit(main())
File "/usr/lib/python3.7/site-packages/pythonforandroid/toolchain.py", line 1075, in main
ToolchainCL()
File "/usr/lib/python3.7/site-packages/pythonforandroid/toolchain.py", line 577, in __init__
getattr(self, args.subparser_name.replace('-', '_'))(args)
File "/usr/lib/python3.7/site-packages/pythonforandroid/toolchain.py", line 151, in wrapper_func
build_dist_from_args(ctx, dist, args)
File "/usr/lib/python3.7/site-packages/pythonforandroid/toolchain.py", line 200, in build_dist_from_args
build_recipes(build_order, python_modules, ctx)
File "/usr/lib/python3.7/site-packages/pythonforandroid/build.py", line 562, in build_recipes
recipe.build_arch(arch)
File "/usr/lib/python3.7/site-packages/pythonforandroid/python.py", line 417, in build_arch
sh.Command(join(recipe_build_dir, 'configure')))
File "/usr/lib/python3.7/site-packages/pythonforandroid/logger.py", line 178, in shprint
for line in output:
File "/usr/lib/python3.7/site-packages/sh.py", line 857, in next
chunk = self.process._pipe_queue.get(True, 0.001)
File "/usr/lib/python3.7/queue.py", line 182, in get
return item
File "/usr/lib/python3.7/threading.py", line 244, in __exit__
return self._lock.__exit__(*args)
RuntimeError: release unlocked lock
系统: Cygwin 3.0.3
配置: -Python 3.7 -适用于Android的python 0.7.1 -Buildozer 0.39 -sdk-tools-linux-4333796.zip -android-ndk-r19b-linux-x86_64.zip(是 有AMD特定的变体吗?到目前为止,谷歌说不...)
乐于分享更多,只是不确定是否还有其他重要/潜在相关的内容。我有些怀疑(Cygwin和线程/锁不兼容吗?),但这就是我的全部。
帮助?
答案 0 :(得分:0)
回答我上面的问题(虽然如此):虽然我现在理解有很多设置要求可以直接使用p4a,但最终我总体上意识到了以下几点:
在实现这一目标的过程中,我发现:
Cygwin在创建apk时存在一些深层次的问题-我仍然不确定我遇到的问题是否直接归因于Cygwin环境,我的Cygwin设置,我的测试App和我所拥有的已贬值的ListView东西,我的计算机病毒防护或上述内容的强大而难以管理的组合。
我也尝试了一段时间,试图让MSYS2和Mingw-w64 64位本机地为Android构建奇异的东西,但是整个Windows与Unix的路径名混合,环境设置和其他一百件事证明了太多分散了我真正目标的注意力:构建可在许多平台上本地运行的应用程序-> Mingw可能在将来仍会扮演重要角色,但目前仍在书架上。
我也尝试过Termux。和Eclipse。并研究了使新的Android Studio与Python配合使用的方法。一切皆有可能(或没有),我真的看到了Eclipse和Android Studio在创建可视化应用程序前端方面的价值,因此随着该项目的成熟,它们又可能会找到未来的用途。
总而言之,我要感谢互联网上数百人-一次打开了将近80个标签(保存了多标签书签!): Buildozer以及为什么它在Linux机器上能如此出色地工作,我结束了可能应该开始的地方。我的原型kivy应用程序可在Android手机上运行,(希望很快),Kivy Launcher也将运行。重新启动的新Kivy Launcher似乎以某种方式失败,这使我相信“ ListView”折旧是它崩溃的原因(它生成,开始加载所包含的示例应用程序,但随后崩溃并且日志没有我所提供的帮助那么大) d希望)。如果我可以确认并重构它以解决此问题,我将有真正的东西可以回馈自己。
如果您更关心新的Kivy Launcher而不是构建APK的工具,请继续关注我上面原始文章中的第一个链接-如果我确实希望Kivy Launcher再次正常工作,我希望再添加一个条目具有我需要的所有新的kivy和python3功能。现在我只需要弄清楚RecycleView ...