在Android中使用Chaquopy时无法导入OpenCV的技术求助
解决Chaquopy中无法导入OpenCV(cv2)的问题
一、配置Chaquopy引入OpenCV依赖
在模块级build.gradle文件的chaquopy块中,添加OpenCV的pip安装配置。推荐使用headless版本(无需GUI组件,更适配Android环境):
android { ... chaquopy { pip { install "opencv-python-headless==4.8.0.74" } } }
注意:需保证Chaquopy版本与OpenCV版本兼容,比如Chaquopy 14.0+适配Python 3.10,对应OpenCV 4.8.x版本可正常安装。
二、修正Python代码的缩进与鲁棒性
你的代码存在缩进错误,且未处理图片解码失败的情况,修正后代码如下:
import cv2 import numpy as np def main(imageBytes): np_data = np.asarray(imageBytes, np.uint8) img = cv2.imdecode(np_data, cv2.IMREAD_UNCHANGED) # 处理图片解码失败的情况,避免后续报错 if img is None: return "0_0" if img.shape[0] > img.shape[1]: img = cv2.transpose(img) # img = cv2.resize(img, (1600, 1200)) return f"{img.shape[0]}_{img.shape[1]}"
三、排查其他可能问题
- 网络环境:首次构建时需从PyPI下载依赖,若网络受限会导致下载失败,可查看构建日志确认是否有下载相关错误。
- 依赖验证:构建完成后,检查项目
build/chaquopy/python/site-packages目录下是否存在cv2文件夹,确认依赖安装到位。
内容的提问来源于stack exchange,提问作者Naveen Muddaraboina
相关产品推荐
相关产品推荐

