uni-app android 离线打包启动页设置背景图片后退出app重新打开偶尔有bug 见附件视频

uni-app android 离线打包启动页设置背景图片后退出app重新打开偶尔有bug 见附件视频

开发环境 版本号 项目创建方式
Windows win10 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:正式

HBuilderX版本号:4.85

手机系统:Android

手机系统版本号:Android 12

手机厂商:小米

手机机型:红米K30pro

页面类型:vue

vue版本:vue3

打包方式:云端

示例代码:

<activity  
    android:name="io.dcloud.PandoraEntry"  
    android:theme="@style/AppTheme.Splash"  
    android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale"  
    android:hardwareAccelerated="true"  
    android:exported="true"  
    android:windowSoftInputMode="adjustResize">

<style name="AppTheme.Splash" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowContentOverlay">[@null](/user/null)</item>  
    <item name="android:windowFullscreen">true</item>  
    <item name="android:windowBackground">@mipmap/splash</item>  
</style>

操作步骤: android 离线打包启动页设置背景图片后退出app重新打开偶尔有bug,启动页偶尔会从右侧滑入到左侧,启动页设置的主题如下:

<style name="AppTheme.Splash" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowContentOverlay">[@null](/user/null)</item>  
    <item name="android:windowFullscreen">true</item>  
    <item name="android:windowBackground">@mipmap/splash</item>  
</style>
```
@mipmap/splash 是一张空白的图片,只要设置了这个就会有这个问题,如果改成`<item name="android:windowBackground">[@null](/user/null)</item>` 就不会有这个问题,具体见附件视频

预期结果:
设置启动页背景图片后退出打开能正常显示启动页

实际结果:
android 离线打包启动页设置背景图片后退出app重新打开偶尔有bug,启动页偶尔会从右侧滑入到左侧

bug描述:
android 离线打包启动页设置背景图片后退出app重新打开偶尔有bug,启动页偶尔会从右侧滑入到左侧,启动页设置的主题如下:
<style name="AppTheme.Splash" parent="Theme.AppCompat.Light.NoActionBar"> <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="android:windowContentOverlay">[@null](/user/null)</item> <item name="android:windowFullscreen">true</item> <item name="android:windowBackground">@mipmap/splash</item> </style>

更多关于uni-app android 离线打包启动页设置背景图片后退出app重新打开偶尔有bug 见附件视频的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

这个问题是由于直接在AndroidManifest.xml中设置android:windowBackground导致的启动动画异常。根据知识库文档,uni-app推荐通过manifest.json配置启动界面而非直接修改原生主题。
解决方案:

移除AndroidManifest.xml中对AppTheme.Splash的自定义设置
通过manifest.json正确配置启动页:

打开manifest.json → “App启动界面配置”
Android平台建议勾选"通用启动界面"(自动处理图标和名称显示)
如需自定义背景,参考启动界面配置文档,使用标准PNG图片(非空白图)

关键原因:

空白背景图会导致系统误判Activity透明度,触发默认切换动画(从右侧滑入)
知识库明确说明:“相关改动,云打包生效,真机运行不生效。本地打包需自行在原生工程中配置”
直接修改原生主题会绕过uni-app的启动管理机制

额外建议:

检查alwaysShowBeforeRender配置(manifest.json源码视图),建议保持默认true确保首页渲染完成后再关闭启动页
确保启动图符合规范:必须是标准PNG,不要用JPG改后缀,Android支持.9.png

请优先使用manifest.json可视化配置启动界面,避免直接修改原生文件。详细配置指南 内容为 AI 生成,仅供参考

更多关于uni-app android 离线打包启动页设置背景图片后退出app重新打开偶尔有bug 见附件视频的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这个问题是由于Android系统对启动页(Splash)动画的默认处理机制导致的。当设置了android:windowBackground为图片时,系统会应用一个默认的窗口进入动画(通常是侧滑效果),这在应用冷启动时正常,但在热启动(从后台恢复)时偶尔会触发,导致启动页从右侧滑入。

解决方案:

  1. 禁用窗口动画(推荐): 在AndroidManifest.xml的启动Activity配置中添加android:windowAnimationStyle属性,禁用进入/退出动画:

    <activity  
        android:name="io.dcloud.PandoraEntry"  
        android:theme="@style/AppTheme.Splash"  
        android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale"  
        android:hardwareAccelerated="true"  
        android:exported="true"  
        android:windowSoftInputMode="adjustResize"
        android:windowAnimationStyle="@style/NoAnimation">
    

    styles.xml中定义NoAnimation样式:

    <style name="NoAnimation">
        <item name="android:activityOpenEnterAnimation">@null</item>
        <item name="android:activityOpenExitAnimation">@null</item>
        <item name="android:activityCloseEnterAnimation">@null</item>
        <item name="android:activityCloseExitAnimation">@null</item>
    </style>
    
  2. 使用透明背景替代: 如果启动页不需要复杂背景,可将windowBackground设为透明色,避免触发系统动画:

    <item name="android:windowBackground">[@android](/user/android):color/transparent</item>
回到顶部