Cordova / Ionic资源

时间:2016-12-20 20:06:10

标签: cordova ionic-framework

我正在使用ionic来生成资源(图标和启动)。我正在使用离子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 resourcesconfig.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 个答案:

答案 0 :(得分:5)

  1. 没有目的,这是一个bug,它应该在platforms / android文件夹中生成
  2. 是的,你可以
  3. 如果两者都需要相同,您可以将splash.png和icon.png添加到resources文件夹中。将它们添加到resp。 resources/androidresources/ios代替它们,如果它们需要不同的话。然后运行ionic resources
  4. 请参阅下面的解决方案:

    您已更新至最新版本的Cordova,但未更新至最新版本的Android平台。这样做是为了更新到版本6.1.0:

    cordova platform update android@6.1.0
    

    之后,资源将被上传到platforms / android中的res目录,您可以安全地从项目根目录中删除res目录。

    修改

    此问题已在Cordova 6.5.0中修复。

    使用以下命令将项目更新到Cordova 6.5.0。

    npm install -g cordova
    

    如果你已经使用cordova早期版本构建了项目,则必须更新项目的android平台。

    cordova platform update android@6.1.1