如何彻底替换Cordova Android启动闪屏的默认Logo?
彻底移除Cordova默认启动屏Logo的正确方案
核心原因
Cordova的cordova-plugin-splashscreen插件在构建时会自动生成ic_cdv_splashscreen.xml文件,该文件默认指向Cordova官方资源,优先级高于你手动放入drawable-*目录的自定义图片,因此会出现先显示默认Logo再切换到自定义内容的现象。
正确解决步骤
1. 通过config.xml配置自定义启动屏(推荐)
不要手动修改platforms目录下的文件——构建过程会自动覆盖这些内容,所有配置都应放在项目根目录的config.xml中:
- 确保已安装启动屏插件:
cordova plugin add cordova-plugin-splashscreen
- 在
config.xml中添加以下配置,完全覆盖默认资源逻辑:
<!-- 指定启动屏核心配置,替换默认生成规则 --> <preference name="SplashScreen" value="screen" /> <!-- 配置各分辨率的启动屏图片 --> <splash src="res/screens/android/splash-hdpi.png" density="hdpi" /> <splash src="res/screens/android/splash-mdpi.png" density="mdpi" /> <splash src="res/screens/android/splash-xhdpi.png" density="xhdpi" /> <splash src="res/screens/android/splash-xxhdpi.png" density="xxhdpi" /> <splash src="res/screens/android/splash-xxxhdpi.png" density="xxxhdpi" /> <!-- 适配Android 12+的启动屏细节 --> <preference name="AndroidWindowSplashScreenBackground" value="#FFFFFF" /> <!-- 自定义启动屏背景色 --> <preference name="AndroidWindowSplashScreenIconBackgroundColor" value="#FFFFFF" /> <!-- 图标背景色 --> <preference name="AndroidWindowSplashScreenIcon" value="res/icons/splash-icon.png" /> <!-- 对应你使用的180×180圆形图标 -->
2. 清理缓存并重新构建
修改配置后,必须清理旧的构建缓存,避免残留默认资源:
cordova platform remove android cordova platform add android cordova build android
3. 验证效果
构建完成后,检查platforms/android/app/src/main/res/drawable/ic_cdv_splashscreen.xml,此时它应指向你配置的自定义资源。启动模拟器后,会直接显示你的自定义启动屏,不会出现默认Logo的过渡。
关于临时方案的说明
你使用AndroidWindowSplashScreenAnimatedIcon的方式属于Android 12+的专属配置,是官方支持的方案之一,但如果需要兼容更低版本的Android系统,必须结合上述全局启动屏配置,才能确保全版本都不会出现默认Logo。
内容的提问来源于stack exchange,提问作者vanMeerdervoort
相关产品推荐
相关产品推荐

