问题现象:

Flutter OH应用构建debug包可以正常安装和启动,构建release包出现启动闪退的情况。

问题根因:

release包闪退的核心原因是:使用了的debug版本的 flutter.har

问题排查:

  • release包的体积应该明显小于debug包。以一个纯净的Flutter应用作为基准来看,release包体积约为debug包体积的10%~20%;如果应用release包体积与debug包体积相近(如release包大于debug包的50%),则很可能使用了debug版的 flutter.har

    以 Flutter OH 3.27版本创建一个纯净应用为参考:

    · debug包:118M

    · release包:16.5M

    · release包约为debug包的 14%

  • crash日志中出现 SI_TKILL, raise+228, abort+20 等断言日志,表示 flutter.har 使用的是debug版本,release构建的包不应该出现断言日志。

  • 打开 DevEco Studio → Product,检查 Build Mode 是否是 release

    在这里插入图片描述

解决方案:

1:DevEco Studio → ProductBuild Mode 选择 release

2:清理构建缓存

# 清理Flutter构建缓存
cd <project>
flutter clean

# 删除ohos目录下的缓存
cd ohos
rm -rf oh_modules

# 删除ohos目录下的缓存
cd entry
rm -rf build
rm -rf oh_modules

3:重新构建release包

# 构建release版本
flutter build hap --release

4:检查包体积

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐