我正在使用离子来生成资源(图标和启动) . 我正在使用离子v2.1.0和cordova v6.4.0 .
直到现在我一直在使用(它在以前的版本中工作):
cordova platform add android
ionic resources
这是用这个版本添加android:
Adding android project...
Creating Cordova project for the Android platform:
Path: platforms/android
Package: ...
Name: ...
Activity: MainActivity
Android target: android-24
Subproject Path: CordovaLib
Android project created with cordova-android@6.0.0
在以前的cli版本中, ionic resources
在 config.xml
中生成了相应的条目,并且资源已正确放置 .
但是在升级了cordova和/或离子cli后,android的资源还没有被复制,因此icon和splash仍然是cordova的 . 我见过this thread,它说删除android平台然后使用这个命令:
cordova platform add android@latest
所以这增加了这个平台:
Adding android project...
Creating Cordova project for the Android platform:
Path: platforms/android
Package: ...
Name: ...
Activity: MainActivity
Android target: android-25
Subproject Path: CordovaLib
Android project created with cordova-android@6.1.0
并成功复制图标和启动 . 问题是这会创建一个额外的 res
文件夹:
├── bower.json
├── config.xml
├── gulpfile.js
├── hooks
├── ionic.config.json
├── node_modules
├── package.json
├── platforms
├── plugins
├── res
│ ├── drawable-land-hdpi
│ ├── drawable-land-ldpi
│ ├── drawable-land-mdpi
│ ├── drawable-land-xhdpi
│ ├── drawable-land-xxhdpi
│ ├── drawable-land-xxxhdpi
│ ├── drawable-port-hdpi
│ ├── drawable-port-ldpi
│ ├── drawable-port-mdpi
│ ├── drawable-port-xhdpi
│ ├── drawable-port-xxhdpi
│ ├── drawable-port-xxxhdpi
│ ├── mipmap-hdpi
│ ├── mipmap-ldpi
│ ├── mipmap-mdpi
│ ├── mipmap-xhdpi
│ ├── mipmap-xxhdpi
│ └── mipmap-xxxhdpi
├── resources
├── scss
└── www
所以我的问题是:
-
这个额外生成的
res
文件夹的目的是什么? -
我可以安全地删除
res
文件夹吗? -
如果我想为Android和ios提供不同的图标,我该如何管理? (在较旧的情况下,我在备份文件夹中复制android的生成资源,为ios生成新资源,然后混合它们并制作
cordova prepare
)
1 回答
没有目的,这是一个bug,它应该在platforms / android文件夹中生成
是的,你可以
如果两者都需要相同,可以将splash.png和icon.png添加到
resources
文件夹中 . 将它们添加到resp .resources/android
和resources/ios
,如果他们需要不同的话 . 然后运行ionic resources
请参阅下面的解决方案:
您已更新到Cordova的最新版本,但未更新到最新版本的Android平台 . 这样做是为了更新到6.1.0版:
之后,资源将上传到platforms / android中的res目录,您可以安全地从项目根目录中删除res目录 .
Edit
此问题已在Cordova 6.5.0中修复 .
使用以下命令将项目更新到Cordova 6.5.0 .
如果您已经使用cordova早期版本构建了项目,则必须更新项目的android平台 .