看了日志,问题不是上传,而是发送图片时本地文件找不到导致的。
日志关键错误:
BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/.../uniapp_temp/compressed/1787819148962_yhkzm.png: open failed: ENOENT
NullPointerException at ImageMessageContent.encode(ImageMessageContent.java:80)
这说明图片压缩后的临时文件不存在,Bitmap 解码失败,然后 encode 时 NPE。
可能原因:
1. Uniapp 压缩图片时失败了,没有生成压缩后的文件
2. 权限问题,压缩后的文件没有正确写入
3. 路径问题,压缩后的文件路径和实际路径不一致
建议排查:
1. 检查发送图片前,uniapp_temp/compressed 目录下是否有对应的压缩文件
2. 检查是否有存储权限(Android 10+ 的 Scoped Storage 限制)
3. 尝试先不压缩直接发送原图,看是否能成功
4. 检查 uniapp 的图片压缩配置是否正确
另外 x86 说的 http 301 问题也可能是原因之一,建议同时确认文件服务器是否支持 http 访问。