VS Tools for Cordova修改config.xml向导设置后Android图标丢失
问题:修改
config.xml向导设置后Android图标配置丢失,iOS配置保留 每次通过config.xml向导修改设置(比如版本代码这类内容),就会发现文件里的Android图标和启动页配置被意外删除,但iOS的相关配置却能正常保留。之前我的Android配置代码是这样的:
<platform name="android"> <splash density="land-hdpi" src="res/screens/android/screen-hdpi-landscape.png" /> <splash density="land-ldpi" src="res/screens/android/screen-ldpi-landscape.png" /> <splash density="land-mdpi" src="res/screens/android/screen-mdpi-landscape.png" /> <splash density="land-xhdpi" src="res/screens/android/screen-xhdpi-landscape.png" /> <splash density="port-hdpi" src="res/screens/android/screen-hdpi-portrait.png" /> <splash density="port-ldpi" src="res/screens/android/screen-ldpi-portrait.png" /> <splash density="port-mdpi" src="res/screens/android/screen-mdpi-portrait.png" /> <splash density="port-xhdpi" src="res/screens/android/screen-xhdpi-portrait.png" /> </platform> <platform name="android"> <icon density="ldpi" src="res/icons/android/mipmap-ldpi/ic_launcher.png" /> <icon density="mdpi" src="res/icons/android/mipmap-mdpi/ic_launcher.png" /> <icon density="hdpi" src="res/icons/android/mipmap-hdpi/ic_launcher.png" /> <icon density="xhdpi" src="res/icons/android/mipmap-xhdpi/ic_launcher.png" /> <icon density="xxhdpi" src="res/icons/android/mipmap-xxhdpi/ic_launcher.png" /> <icon density="xxxhdpi" src="res/icons/android/mipmap-xxxhdpi/ic_launcher.png" /> </platform>
问题原因
我之前也碰到过一模一样的坑!核心问题在于你把Android的启动页和图标配置拆成了两个独立的<platform name="android">节点。当向导自动修改config.xml时,它只会识别并保留一个Android平台节点,另一个就被直接覆盖删除了——这就是为啥图标配置会消失,要是启动页在另一个节点里,也会跟着丢失。而iOS的配置肯定是放在同一个platform节点下的,所以没受影响。
解决方案
- 合并Android配置到同一个节点
把启动页和图标配置都整合到同一个<platform name="android">标签里,这样向导修改时就不会误删内容了,正确的配置写法如下:
<platform name="android"> <!-- 启动页配置 --> <splash density="land-hdpi" src="res/screens/android/screen-hdpi-landscape.png" /> <splash density="land-ldpi" src="res/screens/android/screen-ldpi-landscape.png" /> <splash density="land-mdpi" src="res/screens/android/screen-mdpi-landscape.png" /> <splash density="land-xhdpi" src="res/screens/android/screen-xhdpi-landscape.png" /> <splash density="port-hdpi" src="res/screens/android/screen-hdpi-portrait.png" /> <splash density="port-ldpi" src="res/screens/android/screen-ldpi-portrait.png" /> <splash density="port-mdpi" src="res/screens/android/screen-mdpi-portrait.png" /> <splash density="port-xhdpi" src="res/screens/android/screen-xhdpi-portrait.png" /> <!-- 图标配置 --> <icon density="ldpi" src="res/icons/android/mipmap-ldpi/ic_launcher.png" /> <icon density="mdpi" src="res/icons/android/mipmap-mdpi/ic_launcher.png" /> <icon density="hdpi" src="res/icons/android/mipmap-hdpi/ic_launcher.png" /> <icon density="xhdpi" src="res/icons/android/mipmap-xhdpi/ic_launcher.png" /> <icon density="xxhdpi" src="res/icons/android/mipmap-xxhdpi/ic_launcher.png" /> <icon density="xxxhdpi" src="res/icons/android/mipmap-xxxhdpi/ic_launcher.png" /> </platform>
尽量手动编辑,减少向导依赖
如果条件允许,直接手动修改config.xml来调整版本代码这类设置会更稳妥,能完全掌控配置内容,避免向导自动修改带来的意外。如果必须用向导,修改后一定要检查下Android的配置是否完整。备份配置代码
可以把这份完整的Android配置代码存到一个单独的备份文件里,万一再被误删,直接复制粘贴回去就行,省得重新写一遍。
内容的提问来源于stack exchange,提问作者El Mac
相关产品推荐
相关产品推荐

