【很紧急】请各位官方大大看看,uni-app 鸿蒙热更新wgt提示{errMsg: "Directory not empty"}
【很紧急】请各位官方大大看看,uni-app 鸿蒙热更新wgt提示{errMsg: “Directory not empty”}
代码
uni.downloadFile({
url: app?.data.url,
success: function (res) {
console.log('下载成功',res)
if (res.statusCode == 200) {
plus.runtime.install(res.tempFilePath, {
force: true
}, function () {
console.log('安装成功')
uni.$tm.u.toast('更新完毕,即将重启');
setTimeout(() => {
plus.runtime.restart();
}, 2000)
}, function (e) {
console.log('安装失败',e)
uni.$tm.u.toast(e.message);
});
}
},
fail: function (e) {
console.log('下载失败',e)
uni.hideLoading();
uni.$tm.u.toast(e.errMsg);
}
})
更多关于【很紧急】请各位官方大大看看,uni-app 鸿蒙热更新wgt提示{errMsg: "Directory not empty"}的实战教程也可以访问 https://www.itying.com/category-93-b0.html
替换至 /Applications/HBuilderX-Dev.app/Contents/HBuilderX/plugins/launcher-harmony/base/project.zip(解压)/libs/UniAppRuntime.har 然后重新运行试试看
更多关于【很紧急】请各位官方大大看看,uni-app 鸿蒙热更新wgt提示{errMsg: "Directory not empty"}的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我明天试试,晚上没有鸿蒙手机
安装失败返回:安装失败 {errMsg: undefined}
回复 dLucky: 我再看看,一会儿给你个包
回复 DCloud_UNI_LXH: 可以了,谢谢,忘记回复你了
回复 dLucky: 怎么解决的?我二次热更新就报这个错,是否要清除目录?
回复 3***@qq.com: 你是在development下测试的热更吗? 也就是 hbuilder里运行到鸿蒙
我这边没有作用呢, hbuilder里运行到鸿蒙, 第一次更新都不会成功, 打个只有云真机能装的app包,用云真机测试production版,第一次更新能成功, 更新后每次重启都会白屏2分钟左右才能进页面.
回复 剪不断理还乱: 每次白屏两分钟应该也是bug吧 用正式版的hbuilder 改了配置 app运行编译就报错 i is not iterable
回复 3***@qq.com: release版本的好多都还不支持, 用 alpha 吧
回复 剪不断理还乱: 我用最新的alpha 就出现安装不上的bug 一直安装的bug 你说的那种方式 上线后的production 会出现白屏的情况吗
回复 3***@qq.com: 是不是这个只是影响真机测试 正式版的热更新没有影响?
回复 3***@qq.com: production 我只试了第一次热更是成功的, 就是更新成功后每次打开都白屏一会儿, 没测试能不能第二次热更
回复 3***@qq.com: 里一个贴有新方案 https://ask.dcloud.net.cn/question/205554 可以试一下
回复 剪不断理还乱:好的谢谢
回复 3***@qq.com: 不用啊,不是发了一个包吗?这个包下载下来,然后放在鸿蒙配置文件里面,然后重新运行就行,我hbx版本是4.56哈
重启应用再安装是不是就可以了?在本次报错安装之前是否已经进行过一次安装?
是的,我用手机运行的时候就是这样,删除应用后运行第一次更新没有问题,能正常更新,等第二次就会提示
替换了之后,运行到鸿蒙报错 i is not iterable,app安装不了
app 安装不了,还是 wgt 安装不了?
回复 DCloud_UNI_LXH: 大佬,我替换之后app运行编译就报错了, i is not iterable
回复 苦撑: 那不能,用最新版的 alpha
回复 DCloud_UNI_LXH: 新版的 alpha 通过plus.runtime.getProperty 获取的版本号 还是热更新之前的版本号,导致一致循环热更新,旧版的是 拿到的热更新的包 版本号
回复 DCloud_UNI_LXH: 使用4.63版的 alpha 我发现好像热更新安装成功后 并没有安装热更新的版本,导致获取的版本号一直是上个版本的
回复 3***@qq.com: 我也一样,解决了吗?
我的Hbuilder版本是4.57
请问解决了吗
这个错误通常是由于目标目录不为空导致的。在鸿蒙系统上使用wgt热更新时,需要注意以下几点:
- 确保目标目录是空的,或者使用force参数强制覆盖
- 检查应用是否有足够的文件系统权限
- 确认wgt包格式正确且完整
建议尝试以下修改:
plus.runtime.install(res.tempFilePath, {
force: true,
replace: true // 添加replace参数
}, function() {
// 成功回调
}, function(e) {
console.error('安装失败:', e);
});