错误:构建离子时,android图标png不存在源路径

时间:2017-02-07 21:10:38

标签: android cordova ionic-framework

Your system information:

Cordova CLI: 6.5.0
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
OS: macOS Sierra
Node Version: v6.9.5
Xcode version: Xcode 8.2.1 Build version 8C1002

我正在尝试使用ionic platform add android创建一个Android项目,但它总是抱怨resources/android/icon/drawable-hdpi-icon.png不存在。事实上它没有 - 这些资源都不存在。它们可以由ionic resources创建。

然而如果我尝试在没有平台的情况下运行ionic resources,我会被告知先添加平台。这导致我基本上做了类似的事情:

ionic platform add android
ionic resources
ionic platform rm android
ionic platform add android

然后它正常工作。在添加平台之前,我有什么办法可以确保资源得到正确构建或引用吗?

10 个答案:

答案 0 :(得分:16)

对我来说,在config.xml中,路径在标记中有反斜杠,从而改为:

<icon src="resources\android\icon\drawable-xhdpi-icon.png" />

为:

<icon src="resources/android/icon/drawable-xhdpi-icon.png" />

答案 1 :(得分:10)

这实际上与我的配置有关。如果您未在配置中指定平台,platform add将为您创建一个平台。这会自动包含可能不存在的资源路径。

更新您的config.xml以包含该平台;即使它是空的:

<platform name="android"/>
<platform name="ios"/>

然后,platform add将不会更新配置中的平台并查找可能不存在的资源。不过,你仍然应该ionic resources生成它们。

答案 2 :(得分:3)

就我而言,这是一个config.xml路径问题。

在我这之前:

<icon density="hdpi" src="res/android/ic-hdpi.png" />

但在我的文件夹结构中,我有一个名为 icon 的额外文件夹,因此我将所有.png路径文件更改为:

<icon density="hdpi" src="res/icon/android/ic-hdpi.png" />

它对我有用

答案 3 :(得分:3)

对我来说,此问题是由于config.xml中的以下行引起的:

'<preference name="orientation" value="portrait" />'

实际上,当您尝试使用“ ionic cordova platform add android / ios”添加任何平台时,它将添加相应的平台并生成相应的资源(“ icon.png”和“ splash.png”)。使用纵向方向时,它将仅向该方向添加相关资源(即,如果将方向设置为纵向,则离子科尔多瓦资源不会添加横向图像),并且失败并显示为“ UnhandledPromiseRejectionWarning:错误:源路径不存在:resources / android / icon / drawable-hdpi-icon.png”错误。
因此,请检查您的config.xml是否对纵向/横向模式有任何偏好。

Please remove any preference with portrait/landscape from your config.xml file before adding platform.

答案 4 :(得分:0)

可能在创建未正确添加的离子应用资源时,只需使用以下命令即可安装另一个应用。

ionic start appname blank 

然后复制android图标文件夹并粘贴到您当前的应用程序文件夹中,这将正常工作。您项目中遗漏的图像是72 * 72图像。请检查一次资源。

答案 5 :(得分:0)

检查初始屏幕和应用程序图标的名称。我误解了文件的名称。在我的情况下,错误是由于无效的文件名。我只是复制并粘贴了资产,即AppName_splash.png和icon-512.png,而它应该是“splash.png”和“icon.png”。

答案 6 :(得分:0)

我遇到了相同的问题,该问题已通过删除“ package-lock.json”和“ npm install”解决了

答案 7 :(得分:0)

对于Ionic而言,这对我有效:

npm i -g cordova-res
ionic cordova resources --cordova-res

在这里找到https://github.com/ionic-team/ionic-cli/issues/3762#issuecomment-456967033

认为这是mac / windows问题。

答案 8 :(得分:0)

在config.xml文件中,删除与android和ios平台相关的所有内容,并将其替换为:

<platform name="android"/>
<platform name="ios"/>

答案 9 :(得分:0)

ios平台下,

首先删除所有或类似的内容

<icon height="57" src="resources/ios/icon/icon.png" width="57" />

然后运行

  1. npm i -g cordova-res
  2. sudo ionic cordova 资源 --cordova-res

这将重新加载您的所有资源

在此之后,您可以构建您的应用程序...对我来说效果很好

相关问题