Cordova 12升级cordova-android 13后自定义启动屏不显示求助
升级启动屏插件到兼容版本
Cordova 12和cordova-android 13对cordova-plugin-splashscreen有版本要求,旧版本插件无法适配新平台。执行以下命令更新插件:cordova plugin remove cordova-plugin-splashscreen cordova plugin add cordova-plugin-splashscreen@latest建议使用
6.0.0及以上版本的插件,该版本专门适配了cordova-android 13的资源加载逻辑。修正config.xml中的启动屏配置
升级后平台对启动屏资源的配置格式有细微调整,确保你的config.xml中Android平台的启动屏路径和密度配置完全正确:<platform name="android"> <!-- 横屏启动屏 --> <splash src="cordova/res/screen/android/splash-land-hdpi.png" density="land-hdpi" /> <splash src="cordova/res/screen/android/splash-land-mdpi.png" density="land-mdpi" /> <splash src="cordova/res/screen/android/splash-land-xhdpi.png" density="land-xhdpi" /> <splash src="cordova/res/screen/android/splash-land-xxhdpi.png" density="land-xxhdpi" /> <splash src="cordova/res/screen/android/splash-land-xxxhdpi.png" density="land-xxxhdpi" /> <!-- 竖屏启动屏 --> <splash src="cordova/res/screen/android/splash-port-hdpi.png" density="port-hdpi" /> <splash src="cordova/res/screen/android/splash-port-mdpi.png" density="port-mdpi" /> <splash src="cordova/res/screen/android/splash-port-xhdpi.png" density="port-xhdpi" /> <splash src="cordova/res/screen/android/splash-port-xxhdpi.png" density="port-xxhdpi" /> <splash src="cordova/res/screen/android/splash-port-xxxhdpi.png" density="port-xxxhdpi" /> </platform>注意路径要和你放置资源的
cordova/res/screen/android对应,避免路径错误导致资源无法加载。彻底清理构建缓存
升级后残留的旧构建缓存会导致新资源无法被正确替换,执行以下命令清理后重新构建:cordova clean android rm -rf platforms/android/app/src/main/res/drawable-* rm -rf platforms/android/app/src/main/res/mipmap-* cordova build android验证AndroidManifest.xml的主题配置
检查platforms/android/app/src/main/AndroidManifest.xml中启动Activity的主题,确保插件已自动注入启动屏相关的主题配置,比如主题包含android:windowBackground指向你的启动屏资源。如果配置缺失,可以手动添加(但建议优先通过插件更新解决,避免手动修改后续被覆盖)。社区反馈参考
很多开发者在升级到cordova-android 13后遇到过相同问题,大部分案例都是通过升级启动屏插件、清理缓存、修正config.xml配置解决的。比如有用户反馈旧版插件未适配Android 13的资源目录规则,导致自定义启动屏被默认资源覆盖。
内容的提问来源于stack exchange,提问作者Salvatore

