为armeabiv7a构建hostpython3运行时错误:释放未锁定

2024-09-28 21:27:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在我的另一个问题上取得一些进展--gt;Kivy Launcher - AttributeError: ‘MyInputs’ object has no attribute ‘get_focus_next’

我现在的目的是构建kivylauncher(欢迎对androidpython应用程序原型的其他建议,但不管怎样,我仍然希望完成这项工作)。然而,我遇到了一个新的障碍。pythonforandroid在构建过程中经历了很长一段时间的失败,特别是它的失败如下所示。你知道吗

生成命令:

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

系统: 赛文3.0.3

配置: -Python 3.7版 -android 0.7.1版python -积木0.39 -sdk-tools-linux-4333796.zip -android-ndk-r19b-linux-x86_64.zip(is) 有AMD的特异性变体吗?到目前为止,谷歌拒绝了……)

很乐意分享更多,只是不确定还有什么是重要的/可能相关的。我有一些完全疯狂的怀疑(Cygwin和线程/锁不兼容?),但我只有这些。你知道吗

救命啊?你知道吗


Tags: inpybuildforgetlibpackagesusr
1条回答
网友
1楼 · 发布于 2024-09-28 21:27:45

回答我自己的问题:虽然我现在了解到有很多设置要求可以允许直接使用p4a,但最终我大体上实现了以下几点:

  1. 对于我来说,我的专用Linux设备和buildozerandroid最终成为了最快/最容易管理的选择。它只处理所有正确的下载和组件的对齐,以使构建正确进行。安装了新的python3版本的Kivy Launcher,开始时有一个可用的应用程序列表,就像App Store中的一样,但是它仍然崩溃了(我还在试图找出原因,但是我更接近了……)

在实现这一目标的道路上,我发现:

  1. Cygwin在创建apk时有一些深层次的问题-我仍然不确定我遇到的问题是否是由于Cygwin环境、我的Cygwin设置、我的测试应用程序和我在其中的被贬低的ListView内容、我的计算机病毒防护或上述强大且难以管理的组合造成的。

  2. 我也曾努力让MSYS2和Mingw-w64位在本机和Android上构建kivy,但整个Windows与Unix的路径名混合、环境设置和其他一百件事情都太分散了我真正的目标:构建一个在许多平台上本机运行的应用程序>;Mingw在未来可能仍会扮演一个角色,但现在它已经摆在书架上了。

  3. 我也试过Termux。还有日蚀。并研究了如何使新的Android工作室与Python一起工作。所有的一切都有可能(或者没有),我真的看到了Eclipse和androidstudio在创建visualapp前端方面的价值,所以随着这个项目的成熟,它们可能会在未来得到应用。

总而言之,我要感谢互联网上数以百计的人——我一次打开了将近80个标签页(加上保存了多标签书签!)为了达到这一点:有了Buildozer上的所有可用信息以及为什么它在Linux机器上工作得这么好,我结束了我本应该开始的工作。我的原型kivy应用程序运行在Android手机上,并且(我希望很快)kivy Launcher也会运行。似乎新重新启动的Kivy启动程序失败的方式让我相信'ListView'贬值是它崩溃的原因(它构建,开始加载包含的示例应用程序,但随后崩溃,日志没有我所希望的那么有用)。如果我能确认并重构它来修复这个问题,我会有一些真正的东西来回馈自己。你知道吗

如果你更关心一个新的KivyLauncher而不是构建apk的工具的话,请继续关注我的第一个链接-如果我真的让KivyLauncher再次使用我需要的所有新的Kivy和python3功能,我希望再添加一个条目。现在我只想弄清楚回收站。。。你知道吗

相关问题 更多 >