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

Ionic Capacitor安卓端启动屏显示错误图标求助

解决Ionic Capacitor安卓端启动屏显示自定义图标的问题

在Ionic Capacitor项目中替换自定义启动屏后,iOS端显示正常,但安卓端却显示自定义图标而非启动屏。已尝试capacitor-resources -p android、cordova-res android --skip-config --copy和node resources.js命令,问题未解决。

排查与解决步骤

1. 修复资源复制脚本的逻辑问题

查看你的resource.js,启动屏复制逻辑存在不合理之处:

  • 第一条规则将横屏低分辨率启动屏复制到默认drawable/splash.png,这会导致默认启动屏资源错误。
  • 修改ANDROID_SPLASHES数组的第一个条目,替换为竖屏基础分辨率的启动屏:
const ANDROID_SPLASHES = [
  { source: 'drawable-port-mdpi-screen.png', target: 'drawable/splash.png' }, // 替换为竖屏mdpi图
  { source: 'drawable-land-mdpi-screen.png', target: 'drawable-land-mdpi/splash.png' },
  { source: 'drawable-land-hdpi-screen.png', target: 'drawable-land-hdpi/splash.png' },
  { source: 'drawable-land-xhdpi-screen.png', target: 'drawable-land-xhdpi/splash.png' },
  { source: 'drawable-land-xxhdpi-screen.png', target: 'drawable-land-xxhdpi/splash.png' },
  { source: 'drawable-land-xxxhdpi-screen.png', target: 'drawable-land-xxxhdpi/splash.png' },
  { source: 'drawable-port-mdpi-screen.png', target: 'drawable-port-mdpi/splash.png' },
  { source: 'drawable-port-hdpi-screen.png', target: 'drawable-port-hdpi/splash.png' },
  { source: 'drawable-port-xhdpi-screen.png', target: 'drawable-port-xhdpi/splash.png' },
  { source: 'drawable-port-xxhdpi-screen.png', target: 'drawable-port-xxhdpi/splash.png' },
  { source: 'drawable-port-xxxhdpi-screen.png', target: 'drawable-port-xxxhdpi/splash.png' }
];

同时确认resources/android/splash/目录下的所有screen.png文件都是自定义启动屏,而非图标文件。

2. 清除旧资源并重新复制

  • 删除安卓项目中旧的启动屏资源:
    rm android/app/src/main/res/drawable/splash.png
    rm android/app/src/main/res/drawable-*/splash.png
    
  • 重新运行资源复制脚本:
    node resources.js
    

3. 清理安卓项目缓存并重建

缓存残留可能导致旧资源未被替换,执行以下命令:

cd android
./gradlew clean
./gradlew assembleDebug

或直接在Android Studio中点击「Clean Project」→「Rebuild Project」。

4. 检查启动屏布局文件

确认安卓项目的启动屏布局文件android/app/src/main/res/layout/launch_screen.xml正确引用启动屏资源:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/splash">
    <!-- 若存在ImageView,确保src指向@drawable/splash而非图标 -->
    <!-- <ImageView
        android:src="@drawable/splash"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop" /> -->
</LinearLayout>

确保android:background或ImageView的src属性指向@drawable/splash,而非图标资源(如@mipmap/ic_launcher)。

5. 验证Capacitor配置

你的capacitor.config.ts中androidSplashResourceName: "splash"配置正确,无需修改。若之前启用过layoutName,需确保对应的布局文件存在且配置正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:30:47