Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
钩子失败,错误代码为enoint-如何将Android资源添加到配置xml而不是使用钩子_Android_Cordova_Cordova Cli - Fatal编程技术网

钩子失败,错误代码为enoint-如何将Android资源添加到配置xml而不是使用钩子

钩子失败,错误代码为enoint-如何将Android资源添加到配置xml而不是使用钩子,android,cordova,cordova-cli,Android,Cordova,Cordova Cli,当我尝试在我的Windows 7机器上运行cordova Simulate 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\s

当我尝试在我的Windows 7机器上运行cordova Simulate 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)
我的系统信息如下(来自“info”命令)

注意:Ionic安装在我的机器上,但不用于这个单独的项目-我知道这个错误与我的hooks目录有关,它在after\u prepare目录中有一个hook

此文件名为“assets\u 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资源?

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

e、 g



我建议您使用node在js中重新编写钩子,就像这样,它适用于osx、linux和windows。关于资产,您不需要钩子,我只在config.xml中配置了图标,它们适用于ios和android。
#!/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
<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>