该应用程序的调试版本在模拟器和我的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•频道Beta• 工具•Dart 2.8.0(内部版本2.8.0-dev.18.0 eea9717938)
Flutter 1.18.0-dev.5.0•频道dev• 工具•Dart 2.8.0(内部版本2.8.0-dev.20.0 89b0f67261)
在我尝试过的所有仿真器(3-4)和设备(2)上,发行版未打开,或者如果打开,则其中包含错误。
这是成千上万行代码,我不知道错误在哪里,但是无论如何,这是仓库的链接:https://github.com/burhanhaq/PomodoroApp/tree/master/lib
编辑: 找出问题所在。我在调试模式下的控制器出现错误,我没有处理。我在重建/重新绘制小部件时正在调用setstart(),这是一个错误。
答案 0 :(得分:1)
您应该尝试禁用progaurd和minifyEnabled。 来自/ android / app /
中的build.gradle文件这可能是由于progaurd通过混淆代码而在发行版中执行其操作,有时可能会破坏您的构建。
答案 1 :(得分:1)
您构建APK的方式是一个胖APK,请尝试在终端中使用以下命令,因为它将针对特定设备构建,因此会减少一些基本错误。
flutter build apk --split-per-abi
,您可以在这里Build and Release Android app了解更多信息
答案 2 :(得分:0)
尝试禁用R8,这是Google的新代码收缩器,默认情况下已启用。它可以在优化代码的同时更改您的代码,并可能导致应用在某些特定项目(例如您的项目)中失败。为此,请将--no-shrink
标志传递给flutter build apk
或flutter build appbundle
。您可以阅读有关R8 here的完整文档。
您可以尝试的第二个选项是通过Android Studio IDE构建apk。当您打开Android Studio时,打开/android
文件夹作为项目,然后尝试通过IDE而不是Terminal来构建apk。