【发布时间】:2023-02-05 03:53:15
【问题描述】:
我尝试用tapo-plug、kivy和buildozer包做了一个Android应用,打开后应用直接崩溃了。我以前从未做过这样的事情。这是我的手机发送的错误消息:
02-04 16:32:53.560 23072 23113 I python : Traceback (most recent call last):
02-04 16:32:53.561 23072 23113 I python : File "/home/daniel/test/ServerManagementApp/.buildozer/android/app/main.py", line 19, in <module>
02-04 16:32:53.561 23072 23113 I python : File "/home/daniel/test/ServerManagementApp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/Vexludus/arm64-v8a/tapo_plug/tapoPlugApi.py", line 11, in <module>
02-04 16:32:53.561 23072 23113 I python : File "/home/daniel/test/ServerManagementApp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/Vexludus/arm64-v8a/tapo_plug/tapoEncryption.py", line 7, in <module>
02-04 16:32:53.561 23072 23113 I python : File "/home/daniel/test/ServerManagementApp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/Vexludus/arm64-v8a/Crypto/PublicKey/RSA.py", line 38, in <module>
02-04 16:32:53.561 23072 23113 I python : File "/home/daniel/test/ServerManagementApp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/Vexludus/arm64-v8a/Crypto/IO/PKCS8.py", line 44, in <module>
02-04 16:32:53.561 23072 23113 I python : File "/home/daniel/test/ServerManagementApp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/Vexludus/arm64-v8a/Crypto/IO/_PBES.py", line 43, in <module>
02-04 16:32:53.561 23072 23113 I python : File "/home/daniel/test/ServerManagementApp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/Vexludus/arm64-v8a/Crypto/Hash/MD5.py", line 45, in <module>
02-04 16:32:53.561 23072 23113 I python : NameError: name 'sys' is not defined
02-04 16:32:53.561 23072 23113 I python : Python for android ended.
我已经将 tapo-plug、Crypto、PyCryptodome、pyjwkest、pycrypto 设置为要求。
这是我第一次做这样的事情。
这是发生错误的脚本部分:
from Crypto.Util.py3compat import *
从 Crypto.Util._raw_api 导入(load_pycryptodome_raw_lib, 虚空指针、智能指针、 创建_string_buffer, get_raw_buffer,c_size_t, c_uint8_ptr)
_raw_md5_lib = load_pycryptodome_raw_lib("加密.Hash._MD5", """ #define MD5_DIGEST_SIZE 16
int MD5_init(void **shaState);
int MD5_destroy(void *shaState);
int MD5_update(void *hs,
const uint8_t *buf,
size_t len);
int MD5_digest(const void *shaState,
uint8_t digest[MD5_DIGEST_SIZE]);
int MD5_copy(const void *src, void *dst);
int MD5_pbkdf2_hmac_assist(const void *inner,
const void *outer,
const uint8_t first_digest[MD5_DIGEST_SIZE],
uint8_t final_digest[MD5_DIGEST_SIZE],
size_t iterations);
""")
【问题讨论】:
-
您是否尝试使用
sys而不先使用import sys? -
向我们展示
MD5.py文件。 -
该错误仅在包脚本中的 android 设备上运行时发生。因此它不是我自己写的脚本。
标签: python android runtime-error sys buildozer