离子生成android' s错误:copyFileSync:无法写入dest文件

时间:2017-12-28 10:56:11

标签: cordova ionic-framework ionic3 ionic-native

当我使用命令时:ionic cordova build android这是我得到的:

  

cp:copyFileSync:无法写入dest文件   (代码= ENOENT):/用户/ mehdigriche /工作/ CAM1 /测试/平台/机器人/ RES / XML / config.xml中

     

解析   /Users/mehdigriche/work/cam1/test/platforms/android/res/xml/config.xml   失败(节点:2306)UnhandledPromiseRejectionWarning:未处理的承诺   rejection(拒绝id:1):错误:ENOENT:没有这样的文件或目录,   打开   ' /Users/mehdigriche/work/cam1/test/platforms/android/res/xml/config.xml'

     

[10:50:14] lint完成了我

9 个答案:

答案 0 :(得分:20)

将此挂钩添加到cordova项目:patch-android-studio-check.js

  1. patch-android-studio-check.js 文件放在目录 hooks 中你的项目

  2. 将以下行添加到项目的 config.xml 中:

    <platform name="android">
        <hook src="hooks/patch-android-studio-check.js" type="before_plugin_install" />
        <hook src="hooks/patch-android-studio-check.js" type="before_plugin_add" />
        <hook src="hooks/patch-android-studio-check.js" type="before_build" />
        <hook src="hooks/patch-android-studio-check.js" type="before_run" />
        <hook src="hooks/patch-android-studio-check.js" type="before_plugin_rm" />
    </platform>
    
  3. 删除插件目录:

    rm -rf plugins
    
  4. 重新安装插件:

    ionic build
    
  5. 重新安装平台android:

    cordova platform rm android
    cordova platform add android@latest
    

答案 1 :(得分:14)

你的命令:离子cordova build androird 是错误的 我想你的意思是:离子cordova构建android

但请尝试:离子cordova构建--release android

我遇到了同样的错误,经过2天的调试后,我找到了一个解决方案:

目录中的

:platforms / android / cordova 我在文件Api.js中更新了locations对象,因为路径不正确。

当前位置对象在我的Api.js中看起来像这样:

    this.locations = {
    root: self.root,
    www: path.join(self.root, 'assets/www'),
    res: path.join(self.root, 'res'),
    platformWww: path.join(self.root, 'platform_www'),
    configXml: path.join(self.root, 'app/src/main/res/xml/config.xml'),
    defaultConfigXml: path.join(self.root, 'cordova/defaults.xml'),
    strings: path.join(self.root, 'app/src/main/res/values/strings.xml'),
    manifest: path.join(self.root, 'app/src/main/AndroidManifest.xml'),
    build: path.join(self.root, 'build'),
    javaSrc: path.join(self.root, 'app/src/main/java/'),
    // NOTE: Due to platformApi spec we need to return relative paths here
    cordovaJs: 'bin/templates/project/assets/www/cordova.js',
    cordovaJsSrc: 'cordova-js-src'
};

经过这些改变,我能够构建我的应用程序。 我也有错误,因为像cordova-sqlite-storage这样的插件所以我删除它并构建应用程序。

我希望它有所帮助

答案 2 :(得分:8)

解决此问题

  

cp:copyFileSync:无法写入dest文件   (代码= ENOENT):/用户/ mehdigriche /工作/ CAM1 /测试/平台/机器人/ RES / XML / config.xml中

xml

中创建名为platforms/android/res的文件夹

答案 3 :(得分:5)

显然,添加android +7时无法正确生成某些文件,因此,我通过以下方法解决了此问题:

首先删除平台,

ss << *hex;

ss << (char*)hex[0];

ss << (int *)&hex[0];

然后重新安装较低版本(6.3对我有用)

ionic cordova platform rm android

答案 4 :(得分:4)

今天早上我遇到了同样的问题,我的(相当激烈的)解决方案是:

  1. 删除平台:
  2. ionic cordova platform rm android
    
    1. 从您的应用文件夹中删除以下文件夹:platformsplugins&amp; www
    2. 运行:npm install
    3. ,确保您的相关性可用
    4. 添加回平台,此步骤将重新创建上面步骤2中删除的文件夹:
    5. ionic cordova platform add android
      
      1. 最后,构建您的应用:
      2. ionic cordova build android
        

答案 5 :(得分:1)

注意关于dtmp的答案,使用hooks目录似乎已被弃用。使用'scripts'目录可能更合适。

当尝试使用离子2进行构建时,使用'hooks'目录会导致找不到钩子。

答案 6 :(得分:1)

ionic cordova rm platform android

删除www和plugins文件夹

npm cache clean
npm install audit fix
ionic cordova build  android

答案 7 :(得分:0)

假设

  

Androird

部分只是一个错字。

检查一下: https://github.com/ionic-team/ionic/issues/13702

这是一个已知问题,尚未修复!

答案 8 :(得分:0)

如果您像我一样,尝试克服相同的问题,并尝试以所有方式作为解决方案,但不能。试试这个解决方案;

  1. 打开项目文件夹的project.json文件。
  2. 添加此"android-versions" : "1.3.0"依赖项。
  3. 运行npm i。
  4. 运行命令sudo ionic cordova run android

编码愉快!