首页 > 解决方案 > 在 OSX 上使用 buildozer 将 kivy/python 3.7 应用程序编译为 android apk 时出错 - Silex & pypandoc

问题描述

我在 OSX 上使用 kivy 和 python 3.7 制作了一个应用程序。它在 PyCharm 环境中运行良好。但是,当我尝试使用 buildozer 编译应用程序时,buildozer 不断抛出错误。

我已经使用 pip3.7 命令安装了最新的 buildozer。我什至更新了 python-for-android 来测试它。我目前也在使用 Android NDK r19c,尽管我已经尝试使用 r17c 和 r20。两者都没有工作。

最初,我遇到了与使用 pip 而不是 pip3.7 相关的错误,因为 buildozer 会尝试在某些领域使用 python 2.7。这是通过卸载 buildozer 等并使用 pip3.7 重新安装来解决的。这些错误已经消失,但目前,我似乎遇到了与“Silex”和 pypandoc 相关的新错误,这很奇怪,因为我不相信 buildozer 甚至使用这些错误。

错误代码的字符太多,我无法直接在此处发布,因此请在我的网站上将错误代码作为页面查看。链接如下:

https://apilotslens.com/buildozer-silex-error

然后我安装最新版本的 Silex,它阻止了这个错误的出现。但是,出现了一个与 pypandoc 相关的新错误:

https://apilotslens.com/buildozer-pypandoc-error

即使我安装了 pypandoc,错误仍然出现。

在这一点上我很困惑。据说我已经按书完成了所有事情,因此 buildozer 将编译我的 APK。我真的希望有人能帮助我。据我所知,Buildozer 甚至不使用 Silex 或 pypandoc,那么它们为什么会出现呢?他们以前甚至没有被提及。我真的很想尽快解决这个问题。

提前致谢!

标签: androidmacoskivyapkbuildozer

解决方案


我很确定我根本没有手动接触过该文件。我唯一尝试过的是 clean: buildozer android clean 但这并没有让它工作。

这只会清理构建,而不是完整的缓存。删除并重/Users/JGolding/Desktop/FlightPlanningApp/PythonCode/Drafts/Draft1/.buildozer试。

等等,你是说 shlex 还是 silex?

应该import shlex. 您的文件内容为import silex.

这是您提到的 toolchain.py 文件的链接:

除了 shlex->silex 变化之外,这看起来不错。

我想我会尝试卸载并重新安装 buildozer(pip3.7 卸载 buildozer),但有趣的是,它说不能卸载'buildozer'。找不到要卸载的文件。

这与您针对错误目录或其他内容的 pip 调用无关。

然后我安装最新版本的 Silex,它阻止了这个错误的出现。但是,出现了一个与 pypandoc 相关的新错误:

这也是不相关的,只是 silex 模块不支持 python 3。 silex 模块一直是一个红鲱鱼,只是你的 toolchain.py 副本中的字母开关是错误的。

请注意,如果您阅读错误,它不是在抱怨 pypandoc 而是在抱怨SyntaxError: Missing parentheses in call to 'print'..


推荐阅读