Debugging 颤振:一个过程在调试模式下运行良好,但在发布后运行不好,为什么?

Debugging 颤振:一个过程在调试模式下运行良好,但在发布后运行不好,为什么?,debugging,flutter,release,Debugging,Flutter,Release,我的项目在调试模式下一切正常,但在发布后,除了一个过程外,一切正常 步骤如下: Future<void> downloadFile() async{ Dio dio = Dio(); var directory = await getApplicationDocumentsDirectory(); await dio.download(bookUrl, "${directory.path}/$className + $bookName.pdf", onReceiveProgres

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

步骤如下:

 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';
});
Future downloadFile()异步{
Dio Dio=Dio();
var directory=等待getApplicationDocumentsDirectory();
等待dio.download(bookUrl,“${directory.path}/$className+$bookName.pdf”,
收到进度:(记录,总计){
设置状态(){
下载=真;
百分比=((记录/总数)*100.ToStringGasFixed(0)+'%;
});
}
);
设置状态(){
下载=假;
百分比='下载完成';
});
}

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

E/flatter(25796):[错误:flatter/lib/ui/ui\u dart\u state.cc(148)] 未处理的异常:DioError[DioErrorType.DEFAULT]:SocketException: 主机查找失败:“www.ets.org”(操作系统错误:没有关联的地址 对于主机名,errno=7)E/flatter(25796):#0 Dio。_makeRequest (包装:dio/src/dio.dart:799)电子/颤振(25796):电子/颤振(25796):#1个dio.(请求)。。(包装:dio/src/dio.dart:711)E/颤振 (25796):#2 _根运行一元(dart:async/zone.dart:1132)E/flatter (25796):#3 _CustomZone.runUnary(dart:async/zone.dart:1029) E/颤振(25796):#4#FutureListener.handleValue (dart:async/future_impl.dart:126)E/颤振(25796):#5
未来.\u传播到Listeners.handleValueCallback (dart:async/future_impl.dart:639)E/颤振(25796):#6
Future.\u传播到侦听器(dart:async/Future\u impl.dart:668) E/颤振(25796):#7未来。# (dart:async/future_impl.dart:473)E/颤振(25796):#8
_SyncCompleter.complete(dart:async/future_impl.dart:51)E/flatter(25796):#9_asyncwaitcompleter.complete。 (dart:async patch/async_patch.dart:33)E/颤振(25796):#10
_rootRun(dart:async/zone.dart:1120)E/flatter(25796):#11_CustomZone.run(dart:async/zone.dart:1021)E/flatter(25796):#12_CustomZone.runguard(dart:async/zone.dart:923)E/flatter(25796):#13_CustomZone.bindcallbackguard。(dart:async/zone.dart:963)E/flatter(25796):#14_rootRun (dart:async/zone.dart:1124)E/flatter(25796):#15_CustomZone.run (省道:异步/区域。省道:1021)E/颤振(25796):#16
_CustomZone.runguared(dart:async/zone.dart:923)E/flatter(25796):#17_CustomZone.bindcallbackguared。(dart:async/zone.dart:963)E/flatter(25796):#18 microtaskLoop (dart:async/schedule_microtask.dart:41)E/flatter(25796):#19
_startMicrotaskLoop(dart:async/schedule\u microtask.dart:50)

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

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

编辑:有关特定代码行,请参见下面OP的答案:

确保

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


在你的应用程序的android/app/src/main/AndroidManifest.xml中,我不知道这一点。这是唯一一个在发布后出现错误的过程。我做到了。非常感谢。