【发布时间】:2015-05-28 10:43:31
【问题描述】:
当我尝试在我的 Windows 7 机器上运行 cordova emulate android 时,我的命令提示符中返回以下错误。
Error: Hook failed with error code ENOENT: C:\wwwroot\stk\stk_ks3\app\hooks\after_prepare\assets_copy.sh
at C:\Users\Zab\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\hooks\HooksRunner.js:195:23
at _rejected (C:\Users\Zab\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:797:24)
at C:\Users\Zab\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:823:30
at Promise.when (C:\Users\Zab\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:1035:31)
at Promise.promise.promiseDispatch (C:\Users\Zab\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:741
1)
at C:\Users\Zab\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:557:44
at flush (C:\Users\Zab\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:108:17)
at process._tickCallback (node.js:355:11)
at Function.Module.runMain (module.js:503:11)
at startup (node.js:129:16)
我的系统信息如下(来自 Ionic 'info' 命令)
Your system information:
Cordova CLI: 5.0.0
Ionic CLI Version: 1.4.5
Ionic App Lib Version: 0.0.22
OS: Windows 7 SP1
Node Version: v0.12.2
注意 Ionic 已安装在我的机器上,但未用于此单个项目 - 我知道此错误与我的 hooks 目录有关,这在 after_prepare 目录中有一个挂钩。
此文件名为“assets_copy.sh”,是一个带有以下信息的 shell 脚本。
#!/bin/bash
#iOS assets copy
ios="./platforms/ios"
if [ -d "$ios" ]
then
cp -Rf ./www/res/icons/ios/* ./platforms/ios/'Stk'/Resources/icons
cp -Rf ./www/res/screens/ios/* ./platforms/ios/'Stk'/Resources/splash
fi
#Android assets copy
android="./platforms/android"
if [ -d "$android" ]
then
cp -Rf ./www/res/icons/android/icon.png ./platforms/android/res/drawable/icon.png
cp -Rf ./www/res/screens/android/screen-portrait.png ./platforms/android/res/drawable/screen.png
cp -Rf ./www/res/icons/android/hdpi-icon.png ./platforms/android/res/drawable-hdpi/icon.png
cp -Rf ./www/res/screens/android/hdpi-screen-portrait.png ./platforms/android/res/drawable-hdpi/screen.png
cp -Rf ./www/res/icons/android/ldpi-icon.png ./platforms/android/res/drawable-ldpi/icon.png
cp -Rf ./www/res/screens/android/ldpi-screen-portrait.png ./platforms/android/res/drawable-ldpi/screen.png
cp -Rf ./www/res/icons/android/mdpi-icon.png ./platforms/android/res/drawable-mdpi/icon.png
cp -Rf ./www/res/screens/android/mdpi-screen-portrait.png ./platforms/android/res/drawable-mdpi/screen.png
cp -Rf ./www/res/icons/android/xhdpi-icon.png ./platforms/android/res/drawable-xhdpi/icon.png
cp -Rf ./www/res/screens/android/xhdpi-screen-portrait.png ./platforms/android/res/drawable-xhdpi/screen.png
fi
该应用程序最初是由另一个用户在 Mac 上开发的 - 在 Windows 上运行时,如果我删除所有构建的 assets_copy.sh 文件,但由于其中包含生成资源图标所需的图标,还有什么替代方法允许我在我的 config.xml 中为图标和背景屏幕添加这些相同的 Android 资源的方法?
【问题讨论】:
-
我建议你在js中使用node重写hook,这样它可以在osx、linux和windows上运行。
-
关于资产,你应该不需要钩子,我只在 config.xml 中配置了图标,它们适用于 ios 和 android。
标签: android cordova cordova-cli