为armeabi-v7a构建hostpython3-RuntimeError:释放解锁的锁

时间:2019-03-14 03:39:13

标签: android python kivy

我正在尝试在这里的其他问题上取得一些进展-> 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和线程/锁不兼容吗?),但这就是我的全部。

帮助?

1 个答案:

答案 0 :(得分:0)

回答我上面的问题(虽然如此):虽然我现在理解有很多设置要求可以直接使用p4a,但最终我总体上意识到了以下几点:

  1. 我使用“ Buildozer Android”的专用Linux机器对我来说(最终)是最快/最容易管理的选择。它只是处理正确完成构建所需的所有组件的正确下载和对齐。将安装新的python3版本的Kivy Launcher,并从一系列可用的应用程序开始,就像App Store中的应用程序一样,但是可惜它仍然崩溃(我仍在努力找出原因,但我离它更近了。 。)

在实现这一目标的过程中,我发现:

  1. Cygwin在创建apk时存在一些深层次的问题-我仍然不确定我遇到的问题是否直接归因于Cygwin环境,我的Cygwin设置,我的测试App和我所拥有的已贬值的ListView东西,我的计算机病毒防护或上述内容的强大而难以管理的组合。

  2. 我也尝试了一段时间,试图让MSYS2和Mingw-w64 64位本机地为Android构建奇异的东西,但是整个Windows与Unix的路径名混合,环境设置和其他一百件事证明了太多分散了我真正目标的注意力:构建可在许多平台上本地运行的应用程序-> Mingw可能在将来仍会扮演重要角色,但目前仍在书架上。

  3. 我也尝试过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 ...