uni-app HbuilderX运行到App基座时,报错Error: EPERM: operation not permitted

发布于 1周前 作者 songsunli 来自 Uni-App

uni-app HbuilderX运行到App基座时,报错Error: EPERM: operation not permitted

开发环境 版本号 项目创建方式
Windows 10 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:正式

HBuilderX版本号:3.6.4

手机系统:Android

手机系统版本号:Android 10

手机厂商:华为

手机机型:荣耀 Play5

页面类型:vue

vue版本:vue3

打包方式:云端

项目创建方式:HBuilderX

操作步骤: 今天尝试连接手机调试即出现了以下报错

预期结果: 正常连接手机自定义基座

实际结果: 今天尝试连接手机调试即出现了以下报错

bug描述: 使用Hbuilder 内置web浏览器可以正常浏览,但是连接手机运行到Android APP基座时,出现以下错误。此类错误以前从来没有发生过,手机也可以正常连接自定义基座进行调式更新。上周更新部分代码后,今天尝试连接手机调试即出现了以下报错,看得不是很明白到底是哪里的问题。

03:51:29.686 error during build:
03:51:29.690 Error: EPERM: operation not permitted, rmdir 'C:\Users\admin\Desktop\driver_client\unpackage\dist\dev\app-plus\pages'
03:51:29.690     at rmdirSync (fs.js:850:3)
03:51:29.695     at emptyDir (C:\Users\admin\Desktop\HBuilderX\plugins\uniapp-cli-vite\node_modules\@dcloudio\uni-cli-shared\dist\fs.js:16:32)
03:51:29.697     at emptyOutDir (C:\Users\admin\Desktop\HBuilderX\plugins\uniapp-cli-vite\node_modules\@dcloudio\uni-app-vite\dist\plugin\build.js:24:43)
03:51:29.701     at buildOptions (C:\Users\admin\Desktop\HBuilderX\plugins\uniapp-cli-vite\node_modules\@dcloudio\uni-app-vite\dist\plugin\build.js:39:13)
03:51:29.705     at Object.config (C:\Users\admin\Desktop\HBuilderX\plugins\uniapp-cli-vite\node_modules\@dcloudio\uni-app-vite\dist\plugin\index.js:16:49)
03:51:29.711     at resolveConfig (C:\Users\admin\Desktop\HBuilderX\plugins\uniapp-cli-vite\node_modules\vite\dist\node\chunks\dep-c9998dc6.js:61491:33)
03:51:29.715     at processTicksAndRejections (internal/process/task_queues.js:97:5)
03:51:29.721     at async doBuild (C:\Users\admin\Desktop\HBuilderX\plugins\uniapp-cli-vite\node_modules\vite\dist\node\chunks\dep-c9998dc6.js:41564:20)
03:51:29.721     at async build (C:\Users\admin\Desktop\HBuilderX\plugins\uniapp-cli-vite\node_modules\vite\dist\node\chunks\dep-c9998dc6.js:41552:16)
03:51:29.726     at async buildApp (C:\Users\admin\Desktop\HBuilderX\plugins\uniapp-cli-vite\node_modules\@dcloudio\vite-plugin-uni\dist\cli\build.js:94:24)

6 回复

Error: EPERM: operation not permitted, rmdir 'C:\Users\admin\Desktop\driver_client\unpackage\dist\dev\app-plus\pages
从错误来看,是文件被占用导致的问题。
最简单的解决方法:重启电脑试试


根本不起作用的。应该不是这个问题。恢复以前的文件包,只要连接手机自定义基座,dev文件夹里的文件就会被清空,然后报错。报错信息里也有类似“emptyDir,emptyOutDir”的字样

重启很多次,还是一样报错。这个问题跟这个帖子里出现问题一样:https://ask.dcloud.net.cn/question/143985

我的提示是这样:Error: EPERM: operation not permitted,E:\HBuilderProjects\esx\unpackage\dist\dev.automator\app-plus.automator.json, 删除这个文件,再运行ok

我的是因为app-plus的权限成了拒绝,右键-属性-安全的Everyone改为允许就行了

在解决uni-app在HBuilderX中运行到App基座时遇到的Error: EPERM: operation not permitted错误时,通常这类错误涉及到权限问题或者文件/目录访问冲突。虽然无法直接提供具体的“一键解决”建议,但我们可以从一些常见的角度入手,并通过代码或配置调整来尝试解决问题。以下是一些可能的解决方向及相关的代码或配置示例:

1. 检查文件权限

确保你的项目文件、HBuilderX安装目录以及App基座的安装目录具有适当的读写权限。在Windows上,你可以右键点击目录选择“属性”,然后在“安全”标签页中调整权限。在Linux或Mac上,可以使用chmodchown命令调整。

2. 清理缓存和重建项目

有时候,简单的清理缓存和重建项目可以解决一些莫名其妙的问题。

# 如果你在使用命令行工具,可以尝试清理npm缓存
npm cache clean --force

# 然后在HBuilderX中清理项目并重新编译

在HBuilderX中,你可以通过“项目”菜单选择“清理项目”和“重新编译”。

3. 检查App基座配置

确保你的App基座配置正确无误。特别是关于路径和权限的部分。检查manifest.json文件中是否有不正确的路径引用或权限设置。

4. 使用try-catch捕获异常

在代码中添加try-catch块可以帮助你定位问题发生的具体位置。虽然这不会直接解决EPERM错误,但它可以提供更多关于错误发生上下文的信息。

try {
    // 可能引发权限错误的代码,比如文件读写操作
    fs.readFile('some/protected/path', 'utf8', (err, data) => {
        if (err) throw err;
        console.log(data);
    });
} catch (error) {
    console.error('Caught an error:', error.message);
}

5. 检查并发访问

如果你的应用尝试同时访问同一文件或资源,可能会导致EPERM错误。确保没有并发操作尝试写入或修改同一文件。

6. 更新依赖和环境

确保你的HBuilderX、uni-app框架以及所有相关依赖都是最新版本。有时候,软件更新会修复已知的bug。

# 更新npm依赖
npm update

# 或者升级uni-app到最新版本
npm install -g @dcloudio/uni-cli

通过上述方法,你应该能够更接近问题的根源,并找到解决Error: EPERM: operation not permitted错误的方法。如果问题依旧存在,可能需要更详细地检查具体的代码实现或系统日志来获取更多线索。

回到顶部