flutter Android部分机型安装release包打开后随机黑屏

本文讲述了在开发Flutter应用时遇到的release包在部分Android机型上随机黑屏的问题。尝试了混淆配置、D8压缩、调整生命周期等方法未果。最终发现问题是由于`main`文件中关于屏幕尺寸监听的代码导致,通过在`runApp`前确保WidgetsFlutterBinding初始化,并参考Stack Overflow上的建议修改代码,成功解决了黑屏和页面错乱的问题。

前期开发调试时一直都是在真机上运行的debug包,没有发现随机黑屏的问题,准备上架打release包后发现部分Android的机型会出现随机黑屏的问题,查了资料后说有以下原因:

1.混淆(未解决):

在android/app/build.gradle文件中添加以下配置

buildTypes {
    release {
        minifyEnabled false //关闭混淆
        shrinkResources false //删除无用资源
        signingConfig signingConfigs.release
        ...
    }
}

2.关闭R8压缩,使用D8压缩(未解决):

在android/gradle.properties文件中增加

# 开启D8压缩
android.enableD8=true
# 关闭R8压缩
#android.enableR8=true

以上尝试后都没有解决问题,又考虑是否是Android和flutter生命周期不一致?项目使用了fishredux框架?

在android/app/src/main/kotlin/.../MainActivity.kt文件中写入Android原生的生命周期,重新编译后发现没执行这个文件,因为没有接触过Android原生,因此造成未执行的具体原因不清楚,但想来和生命周期不一致没关系。

将页面替换为flutter原生的写法不使用fishredux,重新编译后也没有解决问题。

到这里这个问题已经卡了我一周多了,没有报错无法定位问题,release也无法打断点,有点绝望,最后想实在不行就重构?那会不会是依赖或者环境的配置有问题?这样的话只能一个依赖一个依赖排查,重新搭环境看是哪里的问题,但着急上线哪有那么多时间真的想哭...。

我先排查了是否是依赖的问题,flutter create了一个新的项目,依次把原项目的依赖引入,发现依赖没问题,但这个新项目打release是没有黑屏问题的!那和原项目的区别就只在于入口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值