【问题标题】:Cordova/Ionic resources科尔多瓦/离子资源
【发布时间】:2016-12-20 20:06:09
【问题描述】:

我正在使用 ionic 来生成资源(图标和启动画面)。我正在使用 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 和/或 ionic 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

【问题讨论】:

    标签: cordova ionic-framework


    【解决方案1】:
    1. 没有目的,是bug,应该在platforms/android文件夹下生成
    2. 是的,你可以
    3. 如果需要相同,您可以将您的 splash.png 和 icon.png 添加到resources 文件夹。将它们添加到相应的位置。 resources/androidresources/ios 如果他们需要不同的话。然后运行ionic resources

    解决方法见下:

    您已更新到最新版本的 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
    

    【讨论】:

    • 那不行:再次运行ionic resources时,它会重新生成所有资源(不管它们是否已经生成,所以它们被覆盖)
    • 确保您安装了两个平台并且资源文件夹本身没有图标。然后将 icon.png 添加到资源文件夹内的 android 和 ios 文件夹并运行 ionic 资源。是的,这两个文件夹中的资源都将被覆盖,这就是您想要的。构建后,资源将被复制到两个平台的正确文件夹中。欲了解更多信息:blog.ionic.io/automating-icons-and-splash-screens
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 2016-08-30
    相关资源
    最近更新 更多