Флаттер: процедура хорошо работает в режиме отладки, но не после выпуска, почему? - PullRequest
0 голосов
/ 07 июля 2019

Мой проект работает нормально в режиме отладки, но после выпуска все работает, кроме одной процедуры.

Вот процедура:

 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';
});

}

Вот сообщение об ошибке, которое появляется при запуске приложения Release:

E / флаттер (25796): [ОШИБКА: флаттер / lib / ui / ui_dart_state.cc (148)] Необработанное исключение: DioError [DioErrorType.DEFAULT]: SocketException: Ошибка поиска хоста: «www.ets.org» (ошибка ОС: адрес не связан с именем хоста, errno = 7) E / flutter (25796): # 0 Dio._makeRequest (пакет: dio / src / dio.dart: 799) E / флаттер (25796): E / флаттер (25796): запрос 1 Dio._request .. (пакет: dio / src / dio.dart: 711) E / флаттер (25796): # 2 _rootRunUnary (dart: async / zone.dart: 1132) E / flutter (25796): # 3 _CustomZone.runUnary (dart: async / zone.dart: 1029) E / flutter (25796): # 4 _FutureListener.handleValue (дротик: async / future_impl.dart: 126) E / flutter (25796): # 5
Future._propagateToListeners.handleValueCallback (дротик: async / future_impl.dart: 639) E / flutter (25796): # 6
Future._propagateToListeners (dart: async / future_impl.dart: 668) E / flutter (25796): # 7 Future._complete (дротик: async / future_impl.dart: 473) E / flutter (25796): # 8
_SyncCompleter.complete (dart: async / future_impl.dart: 51) E / flutter (25796): # 9 _AsyncAwaitCompleter.complete. (дротик: async-patch / async_patch.dart: 33) E / flutter (25796): # 10
_rootRun (дротик: async / zone.dart: 1120) E / флаттер (25796): # 11 _CustomZone.run (дарт: async / zone.dart: 1021) E / флаттер (25796): # 12 _CustomZone.runGuarded (дарт: 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 (дротик: async / zone.dart: 1021) E / флаттер (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 (дротик: async / schedule_microtask.dart: 41) E / флаттер (25796): # 19
_startMicrotaskLoop (dart: async / schedule_microtask.dart: 50)

Ответы [ 2 ]

3 голосов
/ 07 июля 2019

убедитесь, что у вас есть

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

в Android / app / src / main / AndroidManifest.xml вашего приложения

0 голосов
/ 07 июля 2019

SocketException: сбой при поиске хоста: 'www.ets.org' (ошибка ОС: адрес, связанный с именем хоста, не указан, errno = 7)

Похоже, вы не можете подключиться к этому хосту,Может быть, вам нужны сетевые разрешения для вашего приложения?

Редактировать: см. Ответ ОП ниже для конкретной строки кода: https://stackoverflow.com/a/56921201/679553

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...