复制资源/android/icon/mdpi-foreground.png时发生错误。

41

使用 cordova-res 复制图标和闪屏时,我遇到了以下错误。

我正在使用 capacitor 来构建应用程序。

我正在使用以下命令复制图标:

cordova-res android --skip-config --copy

这是该命令的响应:

~/Public/accountech-ecommerce/ionic-files$ cordova-res android --skip-config --copy
Generated 18 resources for Android
WARN:   Error occurred while copying resources/android/icon/mdpi-foreground.png
WARN:   Error occurred while copying resources/android/icon/mdpi-background.png
WARN:   Error occurred while copying resources/android/icon/hdpi-foreground.png
WARN:   Error occurred while copying resources/android/icon/hdpi-background.png
WARN:   Error occurred while copying resources/android/icon/xhdpi-foreground.png
WARN:   Error occurred while copying resources/android/icon/xhdpi-background.png
WARN:   Error occurred while copying resources/android/icon/xxhdpi-foreground.png
WARN:   Error occurred while copying resources/android/icon/xxhdpi-background.png
WARN:   Error occurred while copying resources/android/icon/xxxhdpi-foreground.png
WARN:   Error occurred while copying resources/android/icon/xxxhdpi-background.png
Copied 31 resource items to Android

PS: 我已按照这个指南进行操作:https://capacitorjs.com/docs/guides/splash-screens-and-icons

7个回答

92

我在一个新的Ionic Capacitor@2.4.7项目中遇到了相同的错误。 我把 splash.pngicon.png 放在了 resources 目录下,但这还不够。 这个错误和 cordova-res自适应图标部分有关。你的 resources 目录中还缺少两个图标。

  1. 将必需的 icon-foreground.pngicon-background.png 添加到 resources/android 目录中
  2. (可选) 检查是否使用了最新版的 cordova-res。我在Mac上使用以下命令升级到版本0.15.3:sudo npm -g remove cordova-res 然后 sudo npm -g install cordova-res --unsafe-perm
  3. 重新运行该命令:
cordova-res android --skip-config --copy
  • 成功的输出现在看起来像这样(18已更改为24):

Generated 24 resources for Android
Copied 31 resource items to Android

4
看起来即使使用最新的 Cordova-res,它也不再起作用了。没有错误,没有丢失的文件,只有相同的警告,仍然生成了18个图像。 - migli
这些图片需要什么尺寸? - BorisD
您可能需要删除您的android和resources/android目录。然后运行npx cap add android命令。接着运行cordova-res android --skip-config --copy命令。 - stephen

35

文件应该像这样组织:

resources/
├── android/
│   ├── icon-background.png
│   └── icon-foreground.png
├── icon.png
└── splash.png

接下来,运行此命令以生成所有图像,然后将它们复制到本地项目中:

 cordova-res ios --skip-config --copy
 cordova-res android --skip-config --copy

16
以下步骤对我有效: 您需要手动创建两个图像。 第1步 创建一个432x432的.png文件。然后将其另存为“icon-background.png”。您可以决定是否将颜色设为透明。 在我的情况下,我创建了一个白色图像,因为我需要一个白色背景来制作我的图标,并选择了432x432的尺寸。
第2步 创建另一个432x432的.png文件,并将其保存为“icon-foreground.png”。 在这种情况下,您需要注意第一张图片中使用的背景颜色。
第3步 将上面创建的两个图像放入/resources/android/中。
第4步 然后从项目目录运行以下命令之一,具体取决于哪个适用于您。 第1项对我有效。
1. cd android && gradlew assembleDebug && cd .. 2. ionic cordova run android

你的意思是什么,使用第一张图像中背景色时要特别留意它的颜色? - Carlos.V
它必须是对比色。如果背景色是白色,那么icon-foreground.png图像应该是黑色或者是在白色上放置时可见的颜色。 - Akinsam

1

我按照这个视频的说明进行操作。 https://www.youtube.com/watch?v=2Ce09by4qFE

你需要进入Android Studio并创建一个新的图像资源/其他。

以前可以使用CLI命令完成,但现在不行了...(至少对我来说是这样)


0

直接通过Android Studio添加您的Android应用程序 转到APP 然后点击文件 > 新建 > 图像资源 现在手动设置您的应用程序图标


这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - gtxtreme
那不会替换启动画面。 - Herii
是的,但是通过Ionic命令添加了启动画面,在你遇到应用程序图标错误时,这非常有帮助。通过这个方法,你可以直接更改你的应用程序图标。@JohnHarris - 44_Chintan Vasoya

0

我使用 capacitor-assets 解决了问题,它有一个 "简易模式"。 例如,在我的 Ionic-Vue Android 项目中,我使用了:

npx capacitor-assets generate --android --assetPath resources/android --androidProject android

如果您尚未安装它,可以通过输入以下命令来安装:

npm install @capacitor/assets -g

-4

如果你使用ionicframework,试一试这个命令
ionic cordova resources [<平台>] [选项]

ionic cordova resources


1
由于我正在使用 capacitorjs,因此出现了以下错误:[ERROR] Could not find cordova integration in the default project. - Hello World

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接