【问题标题】:Buildozer not using correct kivy version when packaging for androidBuildozer 在为 android 打包时没有使用正确的 kivy 版本
【发布时间】:2021-04-07 23:58:54
【问题描述】:

我在为 Android 打包我的 Kivy 应用时遇到了一些问题,这些问题可能相关,也可能不相关:

  • 除了 Kivy 之外,我的应用程序导入的唯一包是时间和数学模块。当我将它们中的一个或两个添加到 buildozer 规范文件中的要求时,我得到一个“pip._internal.exceptions.DistributionNotFound:时间没有匹配的分布”。错误。当我没有将它们包含在我的要求中时,构建成功,但在打开时崩溃并出现错误:
  • “例外:此系统上安装的Kivy版本太旧。(您有1.11.1,但应用程序需要2.0.0)”

我正在 Ubuntu 上的 VirutalBox 中进行安装,并遵循 Kivy 和 Buildozer 文档中概述的安装过程,以及 Eric Sandberg 在 YouTube 上的教程。我在 buildozer 规范文件中设置了 Kivy 版本,并使用 pip 在 VM 上安装了 Kivy 2.0.0。当我冻结时,它显示了正确版本的 Kivy。我注意到的一件事是,当我尝试使用“apt-get install python3-kivy”安装它时,它说安装了 kivy 1.10,这是最新版本。

这似乎是一个容易解决的问题,但我不明白为什么它要尝试使用这个版本的 Kivy!请让我知道是否需要任何其他信息进行调试。规范文件几乎没有改变,除了在需求中指定 Kivy=2.0.0。

以下是日志:

以下是要求:

【问题讨论】:

  • 本地安装的 kivy 版本无关紧要,buildozer 会自己获取,所以只有 buildozer.spec 中设置的版本很重要。您的需求线是什么?自从明确设置版本后,您是否完全清理了构建?
  • 另外,如果你拿出 require,你可能会发现 kivy 1.11 很适合你
  • 我已经添加了我的要求的图片。清理构建是什么意思?
  • 我的后备方案是使用 python3.7 和 kivy 1.11.1 重做该过程,但更愿意解决这个问题,因为似乎某处可能需要更改一行。
  • 删除构建目录中的 .buildozer 目录,然后再次运行 buildozer

标签: kivy buildozer python-for-android


【解决方案1】:
  1. 您不必在 buildozer.spec 文件的要求中添加数学和时间,因为它们是 python 中的内置模块。因此,当您在需求中添加 python3 时,它们会自动添加。
  2. 要使用更新的 kivy 版本,您必须在需求中指定它。在要求中,您必须添加 requirements=python3,kivy==2.0.0rc4 或您要使用的任何其他版本。此外,在更改要求后,您可能必须重新构建您的包。您必须删除 .buildozer 目录并使用 buildozer android debug deploy run 再次运行 buildozer

【讨论】:

  • 谢谢!我的主要问题是我必须重建包。我很感激这些信息!
猜你喜欢
  • 2021-04-09
  • 2023-01-18
  • 1970-01-01
  • 1970-01-01
  • 2015-06-26
  • 2016-12-21
  • 2020-09-23
  • 2014-04-15
  • 2023-03-27
相关资源
最近更新 更多