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

Flutter应用使用flutter_launcher_icons后安装时自动锁屏问题求助

问题分析与解决方案

你遇到的问题是:使用flutter_launcher_icons包配置应用图标后,安装到物理设备时会自动锁屏,即使注释掉原生代码中锁屏弹窗相关的FLAG_SHOW_WHEN_LOCKED和FLAG_TURN_SCREEN_ON标记,问题仍然存在。

以下是几个可能的排查方向和解决办法:

1. 检查flutter_launcher_icons生成的AndroidManifest.xml

这个包在生成图标时可能会自动修改AndroidManifest.xml的配置,比如在activity标签中添加了和锁屏、屏幕唤醒相关的属性。建议对比使用该包前后的AndroidManifest.xml文件,重点查看:

  • 是否新增了android:turnScreenOn="true"或类似属性
  • 是否添加了不必要的权限(比如WAKE_LOCK)

如果发现异常配置,手动移除后重新构建安装。

2. 彻底清理构建缓存

缓存残留可能导致旧的异常配置没有被替换,执行以下命令清理后重新生成图标并构建:

flutter clean
flutter pub get
flutter pub run flutter_launcher_icons:main
flutter build apk --debug  # 或根据需要构建其他版本

3. 排查图标资源问题

尝试更换一个已知正常的图标文件(比如使用Flutter默认的图标),重新运行flutter_launcher_icons生成图标,再安装到设备测试。如果问题消失,说明原图标文件(assets/images/logo.png)可能存在格式或尺寸异常,导致系统处理时触发锁屏行为。

4. 调整flutter_launcher_icons版本

该包的某些版本可能存在bug,尝试升级到最新稳定版,或者降级到之前使用正常的版本,再测试问题是否解决。可以在pubspec.yaml中指定版本号,比如:

flutter_launcher_icons: ^0.13.1  # 替换为合适的版本

附你提供的相关代码:

原生代码(MainActivity.java)

// in onCreate of the MainActivity.java
getWindow().addFlags(
                WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
                        WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
        );

pubspec.yaml中的flutter_launcher_icons配置

flutter_launcher_icons:
  android: true
  ios: false
  image_path: "assets/images/logo.png"
  min_sdk_android: 21
  web:
    generate: true
    image_path: "assets/images/logo.png"
    background_color: "#FFFFFF"
    theme_color: "#FFFFFF"
  windows:
    generate: false
  macos:
    generate: false

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 07:02:36