You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何生成适配全Android版本的应用图标 解决旧设备默认图标问题

问题原因

Android 8.0(API 级别26)才开始支持自适应图标规范,如果你之前用Android Studio Image Asset或者cordova-res生成图标时没开启旧版兼容,生成的自适应图标只会存到mipmap-anydpi-v26这个高版本专属资源目录下。API 25及更早的旧Android设备读取不到这个目录的图标资源,就会直接显示系统默认的绿色Android机器人图标。

修复步骤

用Android Studio生成全量兼容图标(最稳妥)

  • 打开项目的Android工程模块,右键res目录,依次选择New > Image Asset
  • 图标类型必须选Launcher Icons (Adaptive and Legacy),不要单独选自适应图标选项
  • 按设计稿上传前景、背景层素材后,切换到Legacy Icon配置tab:
    • 必须勾选Generate Legacy Icon选项
    • 如果你自己的图标已经做了固定形状,形状选项选None,避免系统给你强制加外框
  • 确认图标名称和清单文件里的配置一致(默认是ic_launcher),点击完成生成
  • 生成后手动核对资源目录:所有不带v26后缀的mipmap-mdpi/hdpi/xhdpi/xxhdpi/xxxhdpi文件夹里,都要有对应的ic_launcher.png文件;mipmap-anydpi-v26目录下存放自适应图标的xml配置,这样才是覆盖全版本的资源结构。

修正cordova-res生成参数(Capacitor/Cordova项目适用)

默认配置下的cordova-res不会主动生成旧版兼容图标,需要手动加参数:

  • 提前在项目根目录的resources文件夹下放好1024*1024分辨率、无多余透明边的图标源文件,命名为icon.png
  • 执行生成命令时带上旧版兼容参数:
cordova-res android --type icon --include-legacy
  • 生成后手动核对Android工程下的res目录,确认各密度的非v26 mipmap目录都生成了对应png图标,缺的话手动把生成的文件拷贝到对应目录。

必做的配置校验

  • 打开AndroidManifest.xml,找到<application>节点,确认android:icon属性值为@mipmap/ic_launcher,配置了圆形图的话android:roundIcon对应@mipmap/ic_launcher_round,不要引用drawable目录下的资源,也不要写错资源名
  • 如果项目里集成了第三方启动屏、主题图标相关的库,检查这些库的配置有没有把启动图标引用改成仅v26版本存在的资源,导致低版本找不到
  • 测试前先执行Build > Clean Project清空构建缓存,同时卸载测试机上已经安装的旧版本应用再重新安装,增量编译经常会出现资源不更新的问题。

常见兼容坑

  • 启动图标不要放在drawable系列目录下,必须放在对应密度的mipmap目录,部分低版本厂商ROM无法识别drawable下的启动图标资源
  • 给旧版本用的legacy图标不要留透明背景,API 26以下系统不支持自适应图标的透明层规则,带大面积透明的图标在部分旧ROM上会被直接替换成默认图标
  • 如果项目配置了多渠道、多风味打包,要核对每个风味对应的res目录下有没有覆盖ic_launcher资源,避免部分渠道包漏了旧版图标文件。

内容的提问来源于stack exchange,提问作者user17619876

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 13:15:41