【问题标题】:Kivy buildozer using wrong version of Kivy and KivyMD when packaging for androidKivy buildozer 在为 android 打包时使用了错误版本的 Kivy 和 KivyMD
【发布时间】:2021-04-09 02:40:49
【问题描述】:

我正在使用带有 Ubuntu 20.04.1 的 VirtualBox,并安装了 kivymd 版本 0.104.2dev0 和 kivy 版本 2.0.0。但是,当我在手机上与buildozer android logcat 一起运行该应用程序时,它说kivy 版本是v1.11.1 和kivymd 版本v0.104.1。我认为这是导致我的应用出现错误的原因(因此不会运行)。

我已经尝试将特定版本放入 buildozer.spec 文件中,但仍然无法正常工作。任何建议都会很棒! (如果您需要完整的日志,我可以提供)

【问题讨论】:

  • 尝试删除构建目录中的 .buildozer 目录并再次运行
  • 你是指第一个屏幕截图中的 buildozer 文件还是第二个屏幕截图中的 buildozer 文件? (以上编辑)

标签: python android kivy buildozer kivymd


【解决方案1】:

不管你的系统上安装的是什么版本的 kivy,kivymd。打包时下载应用程序打包的版本,并下载buildozer.spec文件中指定的版本。所以你要做的是在你的buildozer.spec文件的要求中,而不是写requirements=python3,kivyrequirements=python3,kivy==2.0.0。这将确保已安装 v2.0.0。此外,在指定后,您可能必须通过删除运行 buildozer 的目录中的.buildozer 目录来重建您的应用程序。需要注意的一件事是它是 .buildozer 不仅仅是 buildozer 并且将出现在您初始化 buildozer 的目录中,即 buildozer.spec 文件所在的目录中。您可以在该目录中键入rm -rf .buildozer 将其删除。之后,你必须使用buildozer android debug deploy run重建你的apk

【讨论】:

  • 我无法获得正确版本的 Kivymd。我尝试将其指定为:kivymd==0.104.2.dev0kivymd==0.104.2kivymd==https://github.com/kivymd/KivyMD/archive/master.zip。所有这些返回的错误都是No matching distribution found for (kivymd==0.104.2dev0)(或我在 buildozer.spec 中输入的任何内容)。有没有其他方法可以指定 KivyMD 版本?
  • Buildozer 使用的是相当新的 kivymd v0.104.1,所以我通常不指定 kivymd 的版本。不过,如果您想指定,则必须像 requirements = kivy, python3, git+https://github.com/kivymd/KivyMD.git@master,..... 一样指定它,您不必添加 kivyms==github.com...
  • 我输入了git+https://github.com/kivymd/KivyMD.git@master,它在构建时仍在使用v0.104.1。还有其他想法吗?
  • 你重建了吗?在需求中输入git+https://github.com/kivymd/KivyMD.git@master 后,删除.buildozer 目录,然后再次运行buildozer。
猜你喜欢
  • 2021-04-07
  • 1970-01-01
  • 2016-12-21
  • 2020-10-25
  • 2015-06-26
  • 2014-10-16
  • 2022-10-13
  • 2020-09-23
  • 2019-07-03
相关资源
最近更新 更多