1

我有一个 Python/Kivy 应用程序,我正在尝试使用 Buildozer 为 Android 编译。它使用在代码中导入的第三方模块(freeswitchESL),因此:

from freeswitchESL import ESL

一切编译正常,但应用程序一运行就崩溃。查看设备返回的 logcat,在查找模块的内部名称时似乎遇到了问题:

I/python  (11682):  ImportError: No module named _ESL

我不知道如何纠正这个问题。我在 buildozer.spec 中尝试过这种事情:

source.include_patterns = freeswitchESL/*

但无济于事。谁能告诉我我做错了什么?这是我第一次尝试为移动设备编译,它绝对不像我希望的那样简单;)

4

2 回答 2

0

buildozer.spec 中的“需求”部分是您正在寻找的。

于 2016-05-19T22:40:04.957 回答
0

将您的其他文件放在一个文件夹中并放在__init__.py那里可以解决问题。检查此应用程序以获取线索https://github.com/tito/android-demo 但是,如果该应用程序是第 3 方并且您没有 . py 文件,供您可能有不同想法的人使用。例如,支持 numpy,因此如果在需要时使用,我们需要在 buildozer.spec 中按以下方式添加 numpy

requirements = kivy,numpy

但是,如果您使用 pandas、scipy 或 scikit-learn,它们不受支持,因此不能像那样添加。另一种方法是在 numpy 或纯 python 中实现该功能,或创建一个配方。

于 2016-06-20T00:25:12.770 回答