如何在我的android kivy项目中使用.so、.c、.o文件

问题描述 投票:0回答:1

我正在使用 kivy 和 buildozer 构建一个 Android 应用程序。运行我的应用程序后它崩溃了。我看到它的日志上面写着

文件“/home/ali/Documents/Cryptography/.buildozer/android/app/main.py”,第 366 行,位于
文件“/home/ali/Documents/Cryptography/.buildozer/android/app/main.py”,第 379 行,位于 Episode_menu_callback
文件“”,第 1 行,位于
文件“/home/ali/Documents/Cryptography/.buildozer/android/app/qpcrypto/kem/kyber1024.py”,第 1 行,位于
ModuleNotFoundError:没有名为“qpcrypto._kem.kyber1024”的模块
Android 版 Python 结束了。

我的main.py代码的第378行和379行如下

import_statement = f"from qpcrypto.kem.{text_item} import generate_keypair, encrypt, decrypt"
exec(import_statement)

其中text_item是'kyber1024'。

在我的 kyber1024 的第一行中,我有“from .._kem.kyber1024 import ffi as __ffi, lib as __lib”

我的目录结构如下

|-- main.py
|-- qpcrypto
|   |-- _kem
|   |   |-- kyber1024.c
|   |   |-- kyber1024.cpython-310-x86_64-linux-gnu.so
|   |   |-- kyber1024.o
|   |-- kem
|   |   |--kyber1024.py

并不是说在我的 _kem 目录中我没有 kyber1024.py。

当我在我的电脑上运行这个应用程序时,它运行良好,但是在使用 buildozer 将其转换为 .apk 文件后,我收到了上述错误。

在我的 .spec 文件中

source.include_exts = py,png,jpg,kv,atlas,ttf,txt,json,pkl,mp4,mp3,so,c,h,o

事实上我想在我的 kivy 应用程序中使用 python pqcrypto 。它的安装并不像https://github.com/kpdemetriou/pqcrypto/issues/10中讨论的那么简单。所以我首先将它安装到我的电脑上,现在我在我的 kivy 项目中使用安装的文件(qpcrypto)。

kivy kivymd .so
1个回答
0
投票

嗨,你找到了解决方案吗?

© www.soinside.com 2019 - 2024. All rights reserved.