首页 文章

Cordova / Ionic资源

提问于
浏览
3

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

  • 5
    • 没有目的,这是一个bug,它应该在platforms / android文件夹中生成

    • 是的,你可以

    • 如果两者都需要相同,可以将splash.png和icon.png添加到 resources 文件夹中 . 将它们添加到resp . resources/androidresources/ios ,如果他们需要不同的话 . 然后运行 ionic resources

    请参阅下面的解决方案:

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

    cordova platform update android@6.1.0
    

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

    Edit

    此问题已在Cordova 6.5.0中修复 .

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

    npm install -g cordova
    

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

    cordova platform update android@6.1.1
    

相关问题