Flutter 应用程序在构建版本中冻结,在调试中正常工作,androidX?

Posted

技术标签:

【中文标题】Flutter 应用程序在构建版本中冻结,在调试中正常工作,androidX?【英文标题】:Flutter app freeze in build release, work properly in debug, androidX? 【发布时间】:2019-08-08 22:01:58 【问题描述】:

最终更新:

现在一切正常;

在我没有添加互联网权限之前,该应用程序运行良好

(联系 API 和一切),因为更新我必须明确修改清单。

实际上很容易解决:

manifest xmlns:android="http://schemas.android.com/apk/res/android" 

package="com.xxx.xxx"> <uses-permission

 android:name="android.permission.INTERNET"/> <application

 android:name="io.flutter.app.FlutterApplication" android:label="xxx"

 android:icon="@mipmap/ic_launcher"> <activity android:name=".MainActivity"

 [...]

如果您在应用中也遇到同样的意外行为变化。

这可能是原因。

感谢您的关注。


[2019 年 19 月 3 日更新]: Facebook 用户“Momo Roro”描述了自己应用的类似行为

断言它是由应用程序无法运行引起的

联系API,其实符合我的情况,

事实上,在启动屏幕之后我的流应该收到

来自 API 的数据并相应地路由到特定屏幕。

知道为什么它在调试而不是在发布版本中有效吗?


我正在迭代一个我正在开发的应用程序;

我有几个发布版本,

但是在更新到flutter之后 (为此我每天都在诅咒自己)

该应用在调试中完美运行,但在发布版本中冻结

(虽然它会加载“自制”初始屏幕)

编译时没有错误,

扑医生说好的,

我已经固定了我的依赖项并将其添加到 防止androidX问题

rootProject.allprojects 
    project.configurations.all 
        resolutionStrategy.eachDependency  details ->
            if (details.requested.group == 'androidx.core') 
                details.useVersion "1.0.1"
            
            if (details.requested.group == 'androidx.lifecycle') 
                details.useVersion "2.0.0"
            
            if (details.requested.group == 'androidx.versionedparcelable') 
                details.useVersion "1.0.0"
            
        
    

我试过了:flutter clean,

flutter build apk --target-platform=android-arm64,

flutter build --release... 没有任何效果

我在github 上打开了一个问题,但是 如果您能指出正确的方向,我将不胜感激

在这里你可以找到一些logs

提前致谢

【问题讨论】:

如果您检查以前版本的颤振,您的发布版本是否运行正确? 在升级完美之前,如何降级flutter版本? [2019 年 3 月 19 日更新]:Facebook 用户“Momo Roro”描述了其自己的应用程序的类似行为,声称这是由于应用程序无法联系 API 造成的,它实际上匹配我的情况,实际上在启动屏幕之后,我的流应该从 API 接收数据并相应地路由到特定屏幕。知道为什么它在调试而不是发布版本中有效吗? 如果你想使用 1.0.0 版本,取决于你的颤振版本,flutter version 1.0.0flutter version --force 1.0.0。请注意,如果您对 Flutter 存储库进行了本地修改,则需要将它们存储或恢复并手动读取它们。 我在 1.0.0 版的“barcode_scan”库中遇到了类似的问题。将库版本切换到 0.0.8 解决了所有问题 【参考方案1】:

最终更新:

现在一切正常;

在我没有添加互联网权限之前,该应用程序运行良好

(联系 API 和一切),因为更新我必须明确修改清单。

实际上很容易解决:

清单 xmlns:android="http://schemas.android.com/apk/res/android"

package="com.xxx.xxx">

android:name="android.permission.INTERNET"/>

android:name="io.flutter.app.FlutterApplication" android:label="xxx"

android:icon="@mipmap/ic_launcher">

[...] 如果您在应用中也遇到同样的意外行为变化。

这可能是原因。

感谢您的关注。

【讨论】:

【参考方案2】:

就在这周,我遇到了一个与应用权限无关的类似问题,而与 gradle 配置有关。

我尝试了不同的建议,但对我有用的是将我的 gradle 依赖项从 4.1.2 降级为 3.5.4

    转到android/build.gradle不是 android/app/...) 从依赖项中,将您的 gradle 版本从 classpath 'com.android.tools.build:gradle:4.1.2' 或您正在使用的任何更高版本更改为 classpath 'com.android.tools.build:gradle:3.5.4'

【讨论】:

以上是关于Flutter 应用程序在构建版本中冻结,在调试中正常工作,androidX?的主要内容,如果未能解决你的问题,请参考以下文章

启动键盘时 Flutter App 冻结

如何在 Flutter 中构建 apk 创建旧版本应用程序

Flutter 如何在 Android Studio 中制作发布版本?

如何在我的 iOS 应用程序中调试冻结问题

签名发布后尝试调试时 Flutter android App 崩溃

在 Flutter 中使用 Hive 数据库时我的应用程序冻结