uni-app uni.chooseImage 安卓端报错选择失败,微信权限都配置好的
uni-app uni.chooseImage 安卓端报错选择失败,微信权限都配置好的
示例代码:
uni.chooseImage({
count: this.count,
success: (res) => {
console.log('图片选择成功###############', res);
this.$emit('choose')
let {
tempFiles
} = res
this.number = tempFiles.length
tempFiles.forEach((file) => {
compressImage.call(this, file)
})
},
fail: (err) => {
console.log('图片选择失败###############', err);
this.$api.msg(err.message)
}
});
操作步骤:
- 用安卓手机进小程序必复现
预期结果:
- 图片选择正常,上传正常
实际结果:
- 图片选择完后,无法获取图片信息内容
bug描述:
之前一直都是正常的,代码也没有动过,突然就不能选择图片图片,能正常弹出图片选择界面,选择完成之后就报错chooseImage:fail,微信隐私协议早都设置好了,相关的权限也都有,苹果端没有问题,安卓端就不行。很急,线上没法用了。
项目信息 | 值 |
---|---|
产品分类 | uniapp/小程序/微信 |
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | win 10 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 3.98 |
第三方开发者工具版本号 | Stable 1.06.2401020 |
基础库版本号 | 3.3.4 |
项目创建方式 | HBuilderX |
App下载地址或H5网址 | 萌雅集微信小程序 |
更多关于uni-app uni.chooseImage 安卓端报错选择失败,微信权限都配置好的的实战教程也可以访问 https://www.itying.com/category-93-b0.html
fail内容是什么
更多关于uni-app uni.chooseImage 安卓端报错选择失败,微信权限都配置好的的实战教程也可以访问 https://www.itying.com/category-93-b0.html
没有什么,总共报错就这么多,后面发现是我手机的问题,我把手机微信卸载重新装了就好了,真是无语
在 uni-app
中使用 uni.chooseImage
时,如果安卓端报错“选择失败”,而微信权限已经配置好,可能有以下几种原因和解决方法:
1. 权限问题
确保在 AndroidManifest.xml
中已经正确配置了相机和存储权限:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
同时,确保在运行时动态申请了这些权限。
2. 文件路径问题
uni.chooseImage
返回的文件路径在安卓端可能需要进行特殊处理。确保在处理文件路径时,路径是正确的,并且文件存在。
3. 微信开发者工具版本问题
如果你在微信开发者工具中调试,确保使用的是最新版本的开发者工具,旧版本可能存在兼容性问题。
4. uni-app 版本问题
确保你使用的是最新版本的 uni-app
,旧版本可能存在一些已知的 bug。
5. 代码问题
检查你的代码,确保 uni.chooseImage
的调用方式正确。例如:
uni.chooseImage({
count: 1,
success: function (res) {
console.log(res.tempFilePaths);
},
fail: function (err) {
console.error('选择失败', err);
}
});
6. 安卓系统版本问题
某些安卓系统版本可能存在兼容性问题,尝试在不同的安卓设备上测试。
7. 微信权限问题
尽管你提到微信权限已经配置好,但还是要确保在微信客户端中,应用已经获得了相机和存储权限。可以在微信的设置中检查和调整权限。
8. 调试和日志
在 fail
回调中打印详细的错误信息,帮助定位问题:
uni.chooseImage({
count: 1,
success: function (res) {
console.log(res.tempFilePaths);
},
fail: function (err) {
console.error('选择失败', err);
}
});