我一直在使用 pyzbar 开发一个 kivy 应用程序,在需要读取条形码和 QR 码的 Android 上运行。
该应用程序可以读取我电脑上运行的条形码和 QR 码,但在使用使用 buildozer 构建的 .apk 时无法读取 QR 码,但仍能有效读取条形码。
我认为(因为它在 PC 上工作)问题出在构建 apk 时 .spec 文件中的依赖项中。
Buildozer.spec 要求:
# (list) Application requirements
# comma separated e.g. requirements = sqlite3,kivy
requirements = python3,kivy==2.0.0,sdl2,opencv,android,pyzbar,libzbar,Pillow,libiconv
代码运行一切顺利,但无论如何,这就是我调用 pyzbar 解码函数的方式:
import pyzbar
from pyzbar.pyzbar import decode
decoded_objects = decode(VideoCameraBC.image)
我尝试定义 ZbarSymbols 并仅针对 QR 码,但是,毫不奇怪,它根本没有读取任何内容。
有两个类似的(如果不是相同的问题)问题here https://stackoverflow.com/questions/69457638/kivy-pyzbar-does-not-decode-qr-properly-on-android and here https://stackoverflow.com/questions/70405261/pyzbar-doesnt-recognize-qrcode-but-works-with-barcodes由于他们都没有答案 [28/01/2022] 我会再问一次。
.apk 是在 WSL2 中的 buildozer 中构建的,但已经尝试在 Ubuntu 中构建它,并且发生了同样的问题。
需要帮助。谢谢