【问题标题】:Hook failed with error code ENOENT - How to add Android resources to config xml rather than using hooks挂钩失败,错误代码 ENOENT - 如何将 Android 资源添加到配置 xml 而不是使用挂钩
【发布时间】: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


【解决方案1】:

在我的 config.xml 文件中添加了以下内容 - 请注意,这必须在节点内。 这将分配图标,然后分配后面的屏幕-这似乎对我有用:)

例如

<widget>
 <platform name="android">
   <icon src="www/res/icons/android/icon.png" />
   <icon src="www/res/icons/android/ldpi-icon.png" density="ldpi" />
   <icon src="www/res/icons/android/mdpi-icon.png" density="mdpi" />
   <icon src="www/res/icons/android/hdpi-icon.png" density="hdpi" />
   <icon src="www/res/icons/android/xhdpi-icon.png" density="xhdpi" />

   <!-- you can use any density that exists in the Android project -->
   <splash src="www/res/screens/android/screen-portrait.png" />    
   <splash src="www/res/screens/android/hdpi-screen-portrait.png" density="port-hdpi" />
   <splash src="www/res/screens/android/ldpi-screen-portrait.png" density="port-ldpi" />
   <splash src="www/res/screens/android/mdpi-screen-portrait.png" density="port-mdpi" />
   <splash src="www/res/screens/android/xhdpi-screen-portrait.png" density="port-xhdpi" />
 </platform>
</widget>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-28
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 1970-01-01
    • 2021-02-13
    • 2013-07-22
    相关资源
    最近更新 更多