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.0
或 flutter 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 如何在 Android Studio 中制作发布版本?