Cordova构建错误 - EPERM,操作不允许。

13

我正在尝试为我的项目构建一个安卓APK文件

C:\myApp>cordova build android
cp: copyFileSync: could not write to dest file (code=EPERM):C:\myApp\platforms\android\res\xml\config.xml

Error: EPERM, operation not permitted 'C:\myApp\platforms\android\res\xml\config.xml'
at Object.fs.openSync (fs.js:438:18)
at Object.fs.writeFileSync (fs.js:977:15)

我使用的是64位Windows 7操作系统。 可能的原因是什么?

顺便说一下,我的文件是通过Subversion进行版本控制的,我不确定是否与此有关。

有人遇到过这种情况吗?


1
EPERM 表示没有权限执行所需的操作。您需要更改目录/文件的权限或登录管理员帐户并执行该操作。 - frank
嗨@frank,我已经尝试以管理员身份运行命令提示符了。 - Mark Estrada
8个回答

26
重新安装 Android 平台,应重新创建任何具有错误权限的文件夹。 cordova platform remove android cordova platform add android

11

我也遇到了同样的问题。这个方法解决了它:

sudo chown -R yourUserName foldername

3

另一种可能性尚未明确提及,即如果您的版本控制系统在您检入文件时将其标记为只读,则会导致构建过程中出现 EPERM 错误。您需要通过预构建事件或钩子(取决于您的开发环境)来解决此问题,以便在这些文件被复制到特定平台位置后删除此属性。


3

开始菜单 -> 搜索 "cmd" -> 右键单击 "cmd.exe" 并选择 "以管理员身份运行"

这个方法对我解决了问题。


1

尝试关闭你的代码编辑器(例如:VS Code)

然后再次运行/构建。

我知道这是一个奇怪的解决方法,但对我来说有效。


0

我尝试了所有方法,但都没有解决我的问题。所以这是我个人的解决方案:检查防病毒软件(防护盾等),这就是我的问题所在。关闭它后,运行以下命令:

cordova platform rm android
cordova platform add android

它运行得很好。


0

config.xml文件是通过首先复制“platforms\android\cordova\defaults.xml”文件来生成的。如果该文件是只读的,则config.xml也将是只读的,Cordova将无法修改它。

要解决此问题,可以将两个文件都设置为可写,或在构建之前从源代码控制中检出它们。


0

"Error: EPERM" 总是表示权限被拒绝。
我通过移除错误信息中所示的必需文件的只读属性来解决 "Error: EPERM: operation not permitted, open '\resources\android\icon\drawable-ldpi-icon.png'" 错误。

有两个更改可以避免此错误

  1. 移除错误信息中提到的文件的只读属性
  2. 管理员权限运行命令提示符

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接