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

Ionic构建Android报错MissingDefaultResource:启动图无默认资源声明

解决Ionic Cordova构建Android时的MissingDefaultResource启动图错误

我之前在做Ionic Cordova项目打包Android发布版的时候,也碰到过完全一样的问题——明明ionic cordova build android --prod --release能生成未签名APK,但总会弹出这个MissingDefaultResource的错误提示,指向启动图screen.png的资源问题。

错误原因拆解

这个错误的本质是:你的启动图资源只在带密度/方向限定符的文件夹(比如drawable-port-mdpi)里存在,但在基础的drawable文件夹中没有对应的默认资源。当设备处于不匹配这些限定符的配置环境下(比如一些特殊密度的小众设备),系统找不到对应的启动图资源,就会直接崩溃。

具体解决办法

这里给你三个可行的方案,按推荐程度排序:

1. 补充基础drawable文件夹的默认启动图

手动在platforms/android/app/src/main/res/目录下新建一个drawable文件夹,然后把一张通用尺寸的启动图(比如mdpi规格的screen.png)复制进去。不过要注意,每次执行cordova prepare android或者重新构建平台时,这个文件夹可能会被覆盖,所以更稳妥的方式是通过配置让Cordova自动生成这个默认资源。

2. 调整config.xml的启动图配置

打开项目根目录的config.xml,找到所有<splash>节点的配置,确保你不仅配置了带port-xxxhdpi这类限定符的启动图,还要添加一个不带方向限定符的默认密度配置。举个例子:

<!-- 已有的带限定符的配置 -->
<splash src="resources/android/splash/drawable-port-xxxhdpi-screen.png" density="port-xxxhdpi" />
<splash src="resources/android/splash/drawable-port-xxhdpi-screen.png" density="port-xxhdpi" />
<!-- 添加这行默认mdpi的配置,让Cordova自动生成基础drawable文件夹的资源 -->
<splash src="resources/android/splash/drawable-mdpi-screen.png" density="mdpi" />

另外,旧版本的cordova-plugin-splashscreen确实存在这个资源生成的bug,建议你更新到最新版:

cordova plugin remove cordova-plugin-splashscreen
cordova plugin add cordova-plugin-splashscreen

3. 临时禁用Lint的该错误检查(不推荐长期使用)

如果只是想先跳过这个错误完成打包,可以修改Android项目的Lint配置。找到platforms/android/app/build.gradle文件,在lintOptions节点里添加禁用规则:

lintOptions {
    disable 'MissingDefaultResource'
    // 保留你原来的其他Lint配置
}

这个方案只是掩盖问题,不是从根源解决,所以只适合临时救急,后续还是建议补上默认资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:25:40