火柴123
火柴123
  • 发布:2021-08-06 15:38
  • 更新:2021-08-11 15:56
  • 阅读:2708

【报Bug】uni.saveFile 在android11 保存失败: targetSdkVersion设置>=29后在Android10+系统设备不支持当前路径

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 10 专业版

HBuilderX类型: 正式

HBuilderX版本号: 3.1.22

手机系统: Android

手机系统版本号: Android 11

手机厂商: OPPO

手机机型: Reno6 5g

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

saveFiles() {
let _this = this
uni.chooseImage({
count: 1,
extension: ['.png', '.jpg'], // app下不起作用
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], //图片来源
success: function(res) {
console.log('图片', res)
_this.$toast('图片' + JSON.stringify(res))
res.tempFilePaths.map(f => {
uni.saveFile({
tempFilePath: f,
complete: (e) => {
console.log('转储结果', e)
_this.$toast('转储结果' + JSON.stringify(e))
}
})
})
}
})
}

操作步骤:

使用uni.chooseImage选择图片,然后调用uni.saveFile 将选择的图片转储。

预期结果:

期望3张图片通过uni.saveFile可以正常转储

实际结果:

经过测试图片mmexport1626358399799.jpg转储成功,另外两张失败。

{
"errMsg": "chooseImage:ok",
"tempFilePaths": ["file:///storage/emulated/0/Pictures/WeiXin/mmexport1626358388425.jpg"],
"tempFiles": [{
"path": "file:///storage/emulated/0/Pictures/WeiXin/mmexport1626358388425.jpg",
"size": 470484
}]
}
{
"errMsg": "saveFile:fail targetSdkVersion设置>=29后在Android10+系统设备不支持当前路径。请更改为应用运行路径!具体请看:https://ask.dcloud.net.cn/article/36199",
"errCode": 15,
"code": 15
}


{
"errMsg": "chooseImage:ok",
"tempFilePaths": ["file:///storage/emulated/0/Pictures/WeiXin/IMG_20210715_221750.jpg"],
"tempFiles": [{
"path": "file:///storage/emulated/0/Pictures/WeiXin/IMG_20210715_221750.jpg",
"size": 496404
}]
}
{
"errMsg": "saveFile:fail targetSdkVersion设置>=29后在Android10+系统设备不支持当前路径。请更改为应用运行路径!具体请看:https://ask.dcloud.net.cn/article/36199",
"errCode": 15,
"code": 15
}


{
"errMsg": "chooseImage:ok",
"tempFilePaths": ["_doc/uniapp_temp_1628235046888/compressed/1628235106969_mmexport1626358399799.jpg"],
"tempFiles": [{
"path": "_doc/uniapp_temp_1628235046888/compressed/1628235106969_mmexport1626358399799.jpg",
"size": 110499
}]
}
{
"errMsg": "saveFile:ok",
"savedFilePath": "_doc/uniapp_save/16282351071964.jpg"
}

bug描述:

使用uni.chooseImage可以正常选择图片, 然后使用uni.saveFile保存, 有的图片是可以保存的, 但是有的图片提示:

{
"code": 15,
"message": "targetSdkVersion设置>=29后在Android10+系统设备不支持当前路径。请更改为应用运行路径!具体请看:https://ask.dcloud.net.cn/article/36199"
}

2021-08-06 15:38 负责人:无 分享
已邀请:
DCloud_Android_ST

DCloud_Android_ST

HX什么版本呢 理论上3.1.22应该没有这个问题才对

  • 火柴123 (作者)

    3.1.22.20210709版本

    2021-08-09 10:56

  • 火柴123 (作者)

    我提供的图可以试一下

    2021-08-09 10:57

  • DCloud_Android_ST

    回复 火柴123: 真机基座复现吗 。请提供一些测试demo我们复现一些 如果确定是bug会尽快修复

    2021-08-09 10:57

  • DCloud_Android_ST

    回复 火柴123: 不能保存到地址发下

    2021-08-09 10:58

  • 火柴123 (作者)

    真机基座调试的, 今天试了下视频保存也有这种问题。

    保存地址就是用的uni.SaveFile默认的地址,应该是保存在了_doc/uniapp_save 文件夹下。

    请看示例代码, 我测试用的就是这个代码。

    2021-08-09 11:04

  • DCloud_Android_ST

    回复 火柴123: 问题已确认会尽快修复

    2021-08-09 11:24

火柴123

火柴123 (作者)

真机基座调试的, 今天试了下视频保存也有这种问题。
保存地址就是用的uni.SaveFile默认的地址,应该是保存在了_doc/uniapp_save 文件夹下。
请看示例代码, 我测试用的就是这个代码。

DCloud_Android_ST

DCloud_Android_ST

HX3.2.1 alpha已修复该问题

  • 火柴123 (作者)

    辛苦了! 正式版本什么时候发布呢

    2021-08-17 09:46

该问题目前已经被锁定, 无法添加新回复