Python Kivy buildozer在为android打包时使用了错误版本的Kivy和KivyMD

Python Kivy buildozer在为android打包时使用了错误版本的Kivy和KivyMD,python,android,kivy,buildozer,kivymd,Python,Android,Kivy,Buildozer,Kivymd,我使用的是VirtualBox和Ubuntu 20.04.1,并且已经安装了kivymd版本0.104.2dev0和kivy版本2.0.0。然而,当我在手机上与buildozer-android-logcat一起运行该应用程序时,它显示kivy版本是v1.11.1和kivymd版本v0.104.1。我认为这就是导致我的应用程序出错的原因(因此不会运行) 我已经尝试将specfic版本放入buildozer.spec文件中,但仍然没有成功。任何建议都很好!(如果您需要完整日志,我可以提供) 无论

我使用的是VirtualBox和Ubuntu 20.04.1,并且已经安装了kivymd版本0.104.2dev0和kivy版本2.0.0。然而,当我在手机上与
buildozer-android-logcat
一起运行该应用程序时,它显示kivy版本是
v1.11.1
和kivymd版本
v0.104.1
。我认为这就是导致我的应用程序出错的原因(因此不会运行)

我已经尝试将specfic版本放入buildozer.spec文件中,但仍然没有成功。任何建议都很好!(如果您需要完整日志,我可以提供)


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

重新构建apk,无论您的系统上安装了哪个版本的kivy、kivymd。打包时下载随应用打包的版本,并下载
buildozer.spec
文件中指定的版本。因此,您需要做的是在
buildozer.spec
文件的需求中,而不是编写
requirements=python3,kivy
write
requirements=python3,kivy==2.0.0
。这将确保安装了v2.0.0。此外,在指定此选项后,您可能需要删除运行buildozer的目录中的
.buildozer
目录来重建应用程序。需要注意的一点是,它不仅仅是
buildozer
,它还将出现在初始化buildozer的目录中,即
buildozer.spec
文件所在的目录中。您可以在该目录中键入
rm-rf.buildozer
将其删除。之后,您必须使用
buildozer android debug deploy run

重新构建apk,尝试删除build dir中的.buildozer目录并再次运行。您是指第一个屏幕截图还是第二个屏幕截图中的buildozer文件?(以上编辑)尝试删除build dir中的.buildozer目录并再次运行。您是指第一个屏幕截图或第二个屏幕截图中的buildozer文件?(上面编辑)我很难找到Kivymd的正确版本。我尝试将其指定为:
kivymd==0.104.2.dev0
kivymd==0.104.2
kivymd==https://github.com/kivymd/KivyMD/archive/master.zip
。所有这些返回的错误都读取
未找到(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==…我输入了
git+https://github.com/kivymd/KivyMD.git@主控
,构建时仍在使用v0.104.1。还有其他想法吗?你重建了吗?输入
git后+https://github.com/kivymd/KivyMD.git@master
在requirements中删除
.buildozer
目录,然后再次运行buildozer。这非常有效!非常感谢你!我很难找到Kivymd的正确版本。我尝试将其指定为:
kivymd==0.104.2.dev0
kivymd==0.104.2
kivymd==https://github.com/kivymd/KivyMD/archive/master.zip
。所有这些返回的错误都读取
未找到(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==…我输入了
git+https://github.com/kivymd/KivyMD.git@主控
,构建时仍在使用v0.104.1。还有其他想法吗?你重建了吗?输入
git后+https://github.com/kivymd/KivyMD.git@master
在requirements中删除
.buildozer
目录,然后再次运行buildozer。这非常有效!非常感谢你!