标签: python-for-android

如何为 p4a 的 dlib 库创建自定义配方

下面的代码成功创建libdlib.so并复制了该文件,.buildozer/android/platform/build-armeabi-v7a/build/libs_collections/<APP>/armeabi-v7a该文件也位于 apk 本身的路径中.buildozer/android/platform/build-armeabi-v7a/dists/<APP>__armeabi-v7a/libs/armeabi-v7a。但由于某种原因,我无法导入此模块(出现此错误:)ModuleNotFoundError: No module named 'dlib'。我缺少什么?该配方本身基于opencv 配方

食谱

from pythonforandroid.recipe import CppCompiledComponentsPythonRecipe, NDKRecipe
from pythonforandroid.logger import shprint
from pythonforandroid.util import current_directory
import sh
from os.path import join
from multiprocessing import cpu_count


class DlibRecipe(CppCompiledComponentsPythonRecipe):
    site_packages_name = 'dlib'
    version = '19.22'
    url = 'http://dlib.net/files/dlib-{version}.zip'
    depends = ['opencv', 'numpy']
    call_hostpython_via_targetpython = False
    generated_libraries = ['libdlib.so']

    def get_lib_dir(self, arch):
        return join(self.get_build_dir(arch.arch), 'build', 'lib', arch.arch)

    def get_recipe_env(self, arch):
        env = super(DlibRecipe, self).get_recipe_env(arch)
        env['ANDROID_NDK'] = …
Run Code Online (Sandbox Code Playgroud)

python android kivy p4a python-for-android

7
推荐指数
1
解决办法
370
查看次数

尝试使用 kivy master 时没有名为“kivy.graphics.instructions”的模块

我的应用程序在使用 kivy==2.0.0 和 kivymd 时运行良好,但在 Android 设备中不显示数字键盘。因此,正如我所调查的,我必须使用 kivy 的 master 分支来解决这个问题。现在,当我使用 master 分支运行应用程序时,我收到此错误:

“ ModuleNotFoundError:没有名为 'kivy.graphics.instructions' 的模块”

即使当我运行 kivy 的示例时,我也会收到相同的错误。请告诉我我应该做什么,并提前谢谢您。

python kivy kivy-language kivymd python-for-android

6
推荐指数
1
解决办法
933
查看次数

Buildozer 在打包 Android 时未使用正确的 kivy 版本

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

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

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

这似乎是一个很容易解决的问题,但我无法弄清楚为什么它试图使用这个版本的 Kivy!如果调试需要任何其他信息,请告诉我。规范文件几乎没有改变,只是在需求中指定 Kivy=2.0.0 。

这是日志: 错误日志

以下是要求: 要求

kivy buildozer python-for-android

1
推荐指数
1
解决办法
2620
查看次数