- 当前 Bug 的表现(可附上截图)
使用微信开发者工具的真机调试功能调试安卓机时,在fs.readFile处如果读取的文件大于某定值(我们测试的结果是35m,15m都会卡住),就会卡住并报错:error readFile:fail:convert native buffer parameter fail. native buffer exceed size limit
- 预期表现
readFile成功读取文件
- 复现路径
使用提供的复现demo,用安卓机调试
- 提供一个最简复现 Demo
//下载文件指本地,然后读取资源
const fs = wx.getFileSystemManager(); var filepath = wx.env.USER_DATA_PATH + "/downloadFile.zip" ; function failF(res) { console.log( "error " + res.errMsg); } function getSize(res) { console.log( "size =" + res.size); } function onReadFileSuccess(res) { console.log( "onReadFileSuccess " ); } function downloadSuccess(res) { console.log( "downloadSuccess =" + filepath); fs.readFile({ filePath: filepath, success: onReadFileSuccess, fail: failF }); } fs.removeSavedFile({ filePath: filepath }); console.log( "download file " + path) wx.downloadFile({ url: path, success: downloadSuccess, filePath: filepath, fail: failF }) } wxDownLoad( 'http://172.20.110.47:8080/downloadFile.zip' ); |
-备注
如果readFile加encoding参数则可以读取,但是读取我们想要的是ArrayBuffer格式的结果,加了encoding读出的是string
模拟器上没问题,真机(目前只测了安卓机)上不行,跟手机性能应该没关系,测试机一个是华为mate9(4G),一个是小米8(6G),均会报错
官方能回复下,遇到了同样的问
请问最后这个问题怎么解决了?我读取11M的也不行