Flutter:一个程序在调试模式下运行良好,但在发布后就不行,为啥?

Posted

技术标签:

【中文标题】Flutter:一个程序在调试模式下运行良好,但在发布后就不行,为啥?【英文标题】:Flutter : A procedure runs well in debug mode but not after release, why?Flutter:一个程序在调试模式下运行良好,但在发布后就不行,为什么? 【发布时间】:2019-11-17 02:23:12 【问题描述】:

我的项目在调试模式下一切正常,但发布后,除了一个程序外,一切正常。

程序如下:

 Future<void> downloadFile() async
Dio dio = Dio();

var directory = await getApplicationDocumentsDirectory();
await dio.download(bookUrl, "$directory.path/$className + $bookName.pdf",
onReceiveProgress: (rec, total)
  setState(() 
    downloading = true;
    percentage = ((rec/total) * 100).toStringAsFixed(0)+'%';
  );


);

setState(() 
  downloading = false;
  percentage = 'Download Completed';
);

这是发布应用程序运行时我收到的错误消息:

E/flutter (25796): [错误:flutter/lib/ui/ui_dart_state.cc(148)] 未处理的异常:DioError [DioErrorType.DEFAULT]:SocketException: 主机查找失败:“www.ets.org”(操作系统错误:没有关联地址 使用主机名,errno = 7) E/flutter (25796): #0 Dio._makeRequest (package:dio/src/dio.dart:799) E/flutter (25796): E/flutter (25796): #1 Dio._request.. (package:dio/src/dio.dart:711) E/flutter (25796): #2 _rootRunUnary (dart:async/zone.dart:1132) E/flutter (25796): #3 _CustomZone.runUnary (dart:async/zone.dart:1029) E/颤振(25796):#4 _FutureListener.handleValue (dart:async/future_impl.dart:126) E/flutter (25796): #5 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:639) E/flutter (25796): #6 Future._propagateToListeners (dart:async/future_impl.dart:668) E/颤振(25796):#7 Future._complete (dart:async/future_impl.dart:473) E/flutter (25796): #8 _SyncCompleter.complete (dart:async/future_impl.dart:51) E/flutter (25796): #9 _AsyncAwaitCompleter.complete。 (dart:async-patch/async_patch.dart:33) E/flutter (25796): #10 _rootRun (dart:async/zone.dart:1120) E/flutter (25796): #11 _CustomZone.run (dart:async/zone.dart:1021) E/flutter (25796): #12 _CustomZone.runGuarded (dart: async/zone.dart:923) E/flutter (25796): #13 _CustomZone.bindCallbackGuarded。 (dart:async/zone.dart:963) E/flutter (25796): #14 _rootRun (dart:async/zone.dart:1124) E/flutter (25796): #15 _CustomZone.run (dart:async/zone.dart:1021) E/flutter (25796): #16 _CustomZone.runGuarded (dart:async/zone.dart:923) E/flutter (25796): #17 _CustomZone.bindCallbackGuarded。 (dart:async/zone.dart:963) E/flutter (25796): #18 _microtaskLoop (dart:async/schedule_microtask.dart:41) E/flutter (25796): #19 _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)

【问题讨论】:

【参考方案1】:

SocketException:主机查找失败:“www.ets.org”(操作系统错误:否 与主机名关联的地址,errno = 7)

您似乎无法连接到此主机。可能是您的应用程序需要网络权限吗?

编辑:具体代码行见 OP 的回答:https://***.com/a/56921201/679553

【讨论】:

我不知道这个。这是发布后唯一出现错误的过程。 我做到了。谢谢。【参考方案2】:

确保你有

<uses-permission android:name="android.permission.INTERNET" />

在您应用的 android/app/src/main/AndroidManifest.xml 中

【讨论】:

以上是关于Flutter:一个程序在调试模式下运行良好,但在发布后就不行,为啥?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter(Web)提供程序不在发布模式下工作,但在调试中工作

VBA Excel 在调试中运行良好,但在安全更新 KB4022174 后无法在正常模式下运行

Flutter 应用程序无法在 apk-release 中运行,但可以在调试模式下运行(即使在授予 Internet 权限后)

flutter ios app在testflight模式下显示白屏?

UWP XAMARIN 在 RELEASE 模式下崩溃(但在调试中工作良好)

广告未在发布模式下展示