安卓14系统下的平板在uni-app中设置为主应用后关机重启后打开app后访问不到图片地址从文件找进去的确有该文件若把该应用强制重启后就好了

安卓14系统下的平板在uni-app中设置为主应用后关机重启后打开app后访问不到图片地址从文件找进去的确有该文件若把该应用强制重启后就好了

操作步骤:

  • 随便写一个拍照上传图片的demo 调用上传就是空

预期结果:

  • 上传成功

实际结果:

  • 直接报错 打印日志发现是找不到该文件

bug描述:

  • 【报Bug】 安卓14系统下的平板 设置为主应用后 关机重启后 打开app后 访问不到图片地址 从文件找进去的确有该文件 若把该应用强制重启后就好了


| 信息类别         | 信息内容     |
|------------------|--------------|
| 产品分类         | uniapp/App   |
| PC开发环境操作系统 | Windows      |
| PC开发环境操作系统版本号 | 10           |
| HBuilderX类型    | 正式         |
| HBuilderX版本号  | 4.75         |
| 手机系统         | Android      |
| 手机系统版本号    | Android 14   |
| 手机机型         | 平板         |
| 页面类型         | vue          |
| vue版本          | vue3         |
| 打包方式         | 云端         |
| 项目创建方式      | HBuilderX    |

更多关于安卓14系统下的平板在uni-app中设置为主应用后关机重启后打开app后访问不到图片地址从文件找进去的确有该文件若把该应用强制重启后就好了的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于安卓14系统下的平板在uni-app中设置为主应用后关机重启后打开app后访问不到图片地址从文件找进去的确有该文件若把该应用强制重启后就好了的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个典型的Android 14权限适配问题。在Android 14中,系统对文件访问权限进行了更严格的限制,特别是当应用被设置为主应用后,重启时权限状态可能未正确恢复。

核心原因是:应用被设置为主应用后,系统重启时可能未能及时恢复对媒体文件的访问权限,导致应用启动初期无法读取本地文件路径。

解决方案:

  1. 权限声明增强: 在manifest.json中确保声明了完整的存储权限:
{
  "permissions": [
    "android.permission.READ_EXTERNAL_STORAGE",
    "android.permission.WRITE_EXTERNAL_STORAGE",
    "android.permission.MANAGE_EXTERNAL_STORAGE"
  ]
}
  1. 运行时权限检查: 在应用启动时主动请求存储权限:
uni.authorize({
  scope: 'scope.writePhotosAlbum',
  success() {
    console.log('授权成功')
  }
})
  1. 使用MediaStore API: 对于Android 10及以上版本,建议使用MediaStore API来访问媒体文件,而不是直接使用文件路径。

  2. 文件路径处理: 在访问文件时,使用uni-app提供的路径转换方法:

const filePath = plus.io.convertLocalFileSystemURL(filePath)
回到顶部