Flutter build apk 有 bug 而 debug 完美
Posted
技术标签:
【中文标题】Flutter build apk 有 bug 而 debug 完美【英文标题】:Flutter build apk has bugs while debug is perfect 【发布时间】:2020-08-04 00:04:39 【问题描述】:应用程序的调试版本在模拟器和我的 android 设备上都很好。即使安装 app-debug.apk 也很好。但是,当我“flutter build apk”时,app-release.apk 中会出现奇怪的错误,并且按钮和其他一些动画会停止执行它们的任务。我在网上找不到任何关于它的信息。你们中有人遇到过这个问题吗?这可能是提供商状态管理的问题吗?我不明白如何,因为 app-debug.apk 工作得非常好。
它是在 Flutter master 上开始的,但后来我尝试了其他每个通道,都遇到了同样的问题。
Flutter 1.18.0-6.0.pre.106 • 频道主 • 工具 • Dart 2.9.0(构建 2.9.0-1.0.dev a12c36dd97)
Flutter 1.12.13+hotfix.9 • 频道稳定 • 工具• Dart 2.7.2
Flutter 1.17.0 • 频道测试版 • 工具 • Dart 2.8.0(构建 2.8.0-dev.18.0 eea9717938)
Flutter 1.18.0-dev.5.0 • 频道开发 • 工具 • Dart 2.8.0(构建 2.8.0-dev.20.0 89b0f67261)
在我尝试过的所有模拟器 (3-4) 和设备 (2) 上,发布版本要么没有打开,要么打开了它里面有错误。
这是数千行代码,我不知道错误在哪里,但无论如何这里是回购的链接:https://github.com/burhanhaq/PomodoroApp/tree/master/lib
编辑: 想通了问题。我在调试模式下的控制器出现错误,我没有处理。我在重建/重新绘制小部件期间调用了 setstart(),这是一个错误。
【问题讨论】:
【参考方案1】:您构建 apk 的方式是一个胖 APK,尝试在终端中使用以下命令将减少基本错误,因为它将针对特定设备构建
flutter build apk --split-per-abi
你可以在这里阅读更多关于它的信息Build and Release Android app
【讨论】:
感谢您,但仍然存在相同的错误。【参考方案2】:您应该尝试禁用 progaurd 和 minifyEnabled。 来自位于 /android/app/ 内的 build.gradle 文件
这可能发生在 progaurd 在发布版本中通过混淆您的代码执行其操作时,这有时可能会破坏您的构建。
【讨论】:
【参考方案3】:尝试禁用 R8,这是来自 Google 的新代码压缩器,默认情况下已启用。它可以在优化代码时更改您的代码,并且可能导致应用程序在某些特定项目(如您的项目)中失败。为此,请将--no-shrink
标志传递给flutter build apk
或flutter build appbundle
。您可以阅读有关 R8 here 的完整文档。
您可以尝试的第二个选项是通过 Android Studio IDE 构建 apk。当您打开 Android Studio 时,将 /android
文件夹作为项目打开,然后尝试通过 IDE 而不是终端来构建 apk。
【讨论】:
以上是关于Flutter build apk 有 bug 而 debug 完美的主要内容,如果未能解决你的问题,请参考以下文章
Flutter APK build android 资源链接失败的震动包
Flutter 卡在安装 build\app\outputs\apk\app.apk
Flutter 运行卡在安装 build\app\outputs\apk\app.apk
在 Flutter 中发布的“flutter build apk”出现错误
flutter电子木鱼flutter 打包 android apk,记录配置签名的过程/调试的过程及flutter build apk放到手机上用。