Flutter OH 应用,debug构建运行正常,release构建启动闪退
以一个纯净的Flutter应用作为基准来看,release包体积约为debug包体积的10%~20%;如果应用release包体积与debug包体积相近(如release包大于debug包的50%),则很可能使用了debug版的。等断言日志,表示 flutter.har 使用的是debug版本,release构建的包不应该出现断言日志。Flutter OH应用构建debug包可以正常安装和启动,构
问题现象:
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 → Product 里 Build 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:检查包体积
更多推荐
所有评论(0)