山港科技口岸
山港科技口岸
  • 发布:2025-12-04 15:56
  • 更新:2025-12-04 16:48
  • 阅读:112

【报Bug】uni.chooseImage从相册选择在华为P50上没有任何反应

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11

HBuilderX类型: 正式

HBuilderX版本号: 4.85

手机系统: Android

手机系统版本号: Android 15

手机厂商: 华为

手机机型: P50

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

uni.chooseImage({
count: 1,//最大数量
sourceType: ['album','camera'], //从相册选择或拍照'album','camera'
success(res) {
//console.log(res.tempFiles)
// 获取的格式是数组,多选会同时返回,单选只返回一项
_this.imgArr.push(res.tempFiles[0].path)
_this.uploadPic(type);
}
})

操作步骤:

点击相机按钮-选择从相册选择

预期结果:

打开手机相册选择照片

实际结果:

没有任何反应

bug描述:

uni.chooseImage从相册选择没有任何反应。

2025-12-04 15:56 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

根据您描述的问题,uni.chooseImage在华为P50上无反应,结合知识库信息分析如下:

  1. 可能原因:华为设备(尤其是运行HarmonyOS的机型)对系统相册权限管理较严格。您的HBuilderX 4.85版本虽满足App端4.52+的要求,但华为P50实际可能运行HarmonyOS而非纯Android,需特别注意鸿蒙平台兼容性。

  2. 解决方案建议

    • 检查manifest.json中是否添加了相册权限声明("android.permission.READ_EXTERNAL_STORAGE"
    • 尝试改用5+ API实现:camera模块文档,因其底层调用更可控
    • 更新至HBuilderX 4.86 alpha版(最新版本可能修复兼容性问题)
    • 若仍无效,可考虑使用插件市场的相册选择增强插件
  3. 注意事项:鸿蒙平台与Android原生实现存在差异,知识库中明确标注HarmonyOS需HBuilderX 4.23+支持。建议优先通过5+ API定制化处理,避免系统相册UI兼容性问题。

参考文档:uni.chooseImage API文档

内容为 AI 生成,仅供参考
蔡cai

蔡cai - 开发的插件:https://ask.dcloud.net.cn/article/41539

可以使用uni.createRequestPermissionListener()这个api监听下用啥权限,然后去manifest.json里面加相对应的权限;
存储权限有:WRITE_EXTERNAL_STORAGE、READ_EXTERNAL_STORAGE、READ_MEDIA_IMAGES

  • 山港科技口岸 (作者)

    {

    "errMsg": "chooseImage:fail No Permission",

    "code": 12

    }

    2025-12-04 16:14

  • 蔡cai

    manifest.json添加完权限,需要重新打包(云打包选择传统打包)

    2025-12-04 16:45

  • 蔡cai

    回复 山港科技口岸: 你这个提示不就是没有权限吗?可以按照我说去看看需要什么权限

    2025-12-04 16:47

  • 山港科技口岸 (作者)

    回复 蔡cai: "permissions" : [

    "<uses-feature android:name=\"android.hardware.camera\"/>",

    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",

    "<uses-permission android:name=\"android.permission.ACCESS_LOCATION_EXTRA_COMMANDS\"/>",

    "<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>",

    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",

    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",

    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",

    "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",

    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",

    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",

    "<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\"/>",

    "<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>",

    "<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\"/>",

    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",

    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",

    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",

    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",

    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",

    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",

    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",

    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",

    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",

    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",

    "<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\"/>",

    "<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>",

    "<uses-permission android:name=\"android.permission.START_ACTIVITIES\" /> ",

    "<uses-permission android:name=\"android.permission.FOREGROUND_SERVICE\" /> ",

    "<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\" />",

    "<uses-permission android:name=\"android.permission.GET_TASKS\" /> ",

    "<uses-permission android:name=\"android.permission.SCHEDULE_EXACT_ALARM\" />",

    "<uses-permission android:name=\"android.permission.SET_ALARM\"/> ",

    "<uses-permission android:name=\"android.permission.USE_EXACT_ALARM\"/>",

    "<uses-permission android:name=\"android.permission.POST_NOTIFICATIONS\" />",

    "<uses-permission android:name=\"android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS\" /> ",

    "<uses-permission android:name=\"android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK\"/>",

    "<uses-permission android:name=\"android.permission.CHANGE_CONFIGURATION\"/>",

    "<uses-permission android:name=\"android.permission.ACCESS_BACKGROUND_LOCATION\"/>"

    ],

    2025-12-04 16:47

  • 山港科技口岸 (作者)

    该加的权限都加了

    2025-12-04 16:48

  • 蔡cai

    回复 山港科技口岸: 有重新打包吗?选的是传统打包吗?更新manifest.json不能使用快速安心打包,要不会不生效

    2025-12-04 16:51

  • 山港科技口岸 (作者)

    回复 蔡cai: 传统打包方式,打的自定义基座

    2025-12-04 16:54

  • 蔡cai

    回复 山港科技口岸: 我去试下,等会

    2025-12-04 17:07

  • 蔡cai

    回复 山港科技口岸: 测试我自己的手机正常,安卓11

    2025-12-04 17:47

  • 山港科技口岸 (作者)

    回复 蔡cai: 我在小米和vivo上试了都没问题,就是华为p50上不行

    2025-12-05 09:32

  • 蔡cai

    回复 山港科技口岸: 你有手机测试吗,有的话使用uni.createRequestPermissionListener()这个api去监听触发哪个权限,对比下manifest.json文件的权限列表;如果manifest.json有,那就重新打包试试

    2025-12-05 09:40

山港科技口岸

山港科技口岸 (作者) - 山东港口科技集团日照口岸信息技术有限公司

{
"errMsg": "chooseImage:fail No Permission",
"code": 12
}

DCloud_Android_zl

DCloud_Android_zl

调用chooseImage之间是否调用其他API申请了权限?或者提供一个简单的demo我这边试一下。

  • 山港科技口岸 (作者)

    没有其他权限是申请,就是最简朴的

    uni.chooseImage({

    count: 1,//最大数量

    sourceType: ['album','camera'], //从相册选择或拍照'album','camera'

    success(res) {

    //console.log(res.tempFiles)

    // 获取的格式是数组,多选会同时返回,单选只返回一项

    _this.imgArr.push(res.tempFiles[0].path)

    _this.uploadPic(type);

    },

    fail(res){

    console.log(res)

    }

    })

    选择“从相册选择”既不弹窗权限也不打开相册

    2025-12-04 16:23

  • DCloud_Android_zl

    回复 山港科技口岸: 其他手机有没有这个问题,我这边测试几款手机没问题,手头暂时没有p50的设备。

    2025-12-04 18:10

  • 山港科技口岸 (作者)

    回复 DCloud_Android_zl: 我在小米和vivo上试了都没问题,就是华为p50上不行

    2025-12-05 09:32

山港科技口岸

山港科技口岸 (作者) - 山东港口科技集团日照口岸信息技术有限公司

能想到的权限都加上了
"permissions" : [
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_LOCATION_EXTRA_COMMANDS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<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\"/>",
"<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>",
"<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
"<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\"/>",
"<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>",
"<uses-permission android:name=\"android.permission.START_ACTIVITIES\" /> ",
"<uses-permission android:name=\"android.permission.FOREGROUND_SERVICE\" /> ",
"<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\" />",
"<uses-permission android:name=\"android.permission.GET_TASKS\" /> ",
"<uses-permission android:name=\"android.permission.SCHEDULE_EXACT_ALARM\" />",
"<uses-permission android:name=\"android.permission.SET_ALARM\"/> ",
"<uses-permission android:name=\"android.permission.USE_EXACT_ALARM\"/>",
"<uses-permission android:name=\"android.permission.POST_NOTIFICATIONS\" />",
"<uses-permission android:name=\"android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS\" /> ",
"<uses-permission android:name=\"android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_CONFIGURATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_BACKGROUND_LOCATION\"/>"
],

要回复问题请先登录注册