E/flutter ( 8084): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: SocketException: OS Error: Connection refused
5,246
This seems to be an issue with the Android emulator connecting to a remote server. You can check this Stack Overflow post for a workaround on this issue.
Author by
Wsaitama
Updated on December 16, 2022Comments
-
Wsaitama over 1 year
I have some problems when i run my application in an android emulator and with the google chrome device. My application works well only in IOS with an iPhone. The problem is on my drop-down and the call to my api, I suppose. In iPhone device I can see in the dropDownButton the data as a list of the API but not in the others devices.
This is a part of the code that i use to communicate with my api :
// Creation of deviceGet object with device data var deviceGet = new List<Device>(); Future<void> GetDevice() async { // CHANGED await GET.url(url1).then((response) { //END CHANGED setState(() { Iterable list = json.decode(response.body); deviceGet = list.map((model) => Device.fromJson(model)).toList(); }); }); } Future<String> getCommands(String deviceName1, String commandName1) async { String deviceName = deviceName1; String commandName = commandName1; var url = "http://localhost:48082/api/v1/device/name/" + deviceName + "/command/" + commandName1; //we have to wait to get the data so we use 'await' http.Response response = await http.get( //Uri.encodeFull removes all the dashes or extra characters present in our Uri Uri.encodeFull(url), ); //print(response.body); final body = json.decode(response.body); //print(body['readings'][0]['value']); value = body['readings'][0]['value']; }
This is my debug console error:
/flutter ( 8084): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: SocketException: OS Error: Connection refused, errno = 111, address = localhost, port = 43992 E/flutter ( 8084): #0 IOClient.send package:http/src/io_client.dart:33 E/flutter ( 8084): <asynchronous suspension> E/flutter ( 8084): #1 BaseClient._sendUnstreamed package:http/src/base_client.dart:176 E/flutter ( 8084): #2 BaseClient.get package:http/src/base_client.dart:35 E/flutter ( 8084): #3 get.<anonymous closure> package:http/http.dart:46 E/flutter ( 8084): #4 _withClient package:http/http.dart:166 E/flutter ( 8084): #5 get package:http/http.dart:46 E/flutter ( 8084): #6 GET.url package:interface_edge/Get.dart:9 E/flutter ( 8084): #7 Chart1State.GetDevice package:interface_edge/Chart1.dart:47 E/flutter ( 8084): #8 Chart1State.wait package:interface_edge/Chart1.dart:85 E/flutter ( 8084): #9 Chart1State.initState package:interface_edge/Chart1.dart:91 E/flutter ( 8084): #10 StatefulElement._firstBuild package:flutter/…/widgets/framework.dart:4428 E/flutter ( 8084): #11 ComponentElement.mount package:flutter/…/widgets/framework.dart:4274 E/flutter ( 8084): #12 Element.inflateWidget package:flutter/…/widgets/framework.dart:3269 E/flutter ( 8084): #13 Element.updateChild package:flutter/…/widgets/framework.dart:3063 E/flutter ( 8084): #14 ComponentElement.performRebuild package:flutter/…/widgets/framework.dart:4316 E/flutter ( 8084): #15 Element.rebuild E/flutter ( 8084): #21 Element.inflateWidget package:flutter/…/widgets/framework.dart:3269 E/flutter ( 8084): #22 Element.updateChild package:flutter/…/widgets/framework.dart:3063 E/flutter ( 8084): #23 SingleChildRenderObjectElement.mount package:flutter/…/widgets/framework.dart:5518 E/flutter ( 8084): #24 Element.inflateWidget package:flutter/…/widgets/framework.dart:3269 E/flutter ( 8084): #25 Element.updateChild package:flutter/…/widgets/framework.dart:3063 E/flutter ( 8084): #26 ComponentElement.performRebuild package:flutter/…/widgets/framework.dart:4316 E/flutter ( 8084): #27 Element.rebuild package:flutter/…/widgets/framework.dart:4020 E/flutter ( 8084): #28 ComponentElement._firstBuild package:flutter/…/widgets/framework.dart:4279 E/flutter ( 8084): #29 ComponentElement.mount package:flutter/…/widgets/framework.dart:4274 E/flutter ( 8084): #30 Element.inflateWidget package:flutter/…/widgets/framework.dart:3269 E/flutter ( 8084): #31 Element.updateChild package:flutter/…/widgets/framework.dart:3063 E/flutter ( 8084): #32 ComponentElement.performRebuild package:flutter/…/widgets/framework.dart:4316 E/flutter ( 8084): #33 Element.rebuild package:flutter/…/widgets/framework.dart:4020 E/flutter ( 8084): #34 ComponentElement._firstBuild package:flutter/…/widgets/framework.dart:4279 E/flutter ( 8084): #35 ComponentElement.mount E/flutter ( 8084): #36 ParentDataElement.mount package:flutter/…/widgets/framework.dart:4690 E/flutter ( 8084): #37 Element.inflateWidget package:flutter/…/widgets/framework.dart:3269 E/flutter ( 8084): #38 Element.updateChild package:flutter/…/widgets/framework.dart:3063 E/flutter ( 8084): #39 ComponentElement.performRebuild package:flutter/…/widgets/framework.dart:4316 E/flutter ( 8084): #40 Element.rebuild package:flutter/…/widgets/framework.dart:4020 E/flutter ( 8084): #41 ComponentElement._firstBuild package:flutter/…/widgets/framework.dart:4279 E/flutter ( 8084): #42 StatefulElement._firstBuild package:flutter/…/widgets/framework.dart:4454 E/flutter ( 8084): #43 ComponentElement.mount package:flutter/…/widgets/framework.dart:4274 E/flutter ( 8084): #44 Element.inflateWidget package:flutter/…/widgets/framework.dart:3269 E/flutter ( 8084): #45 Element.updateChild package:flutter/…/widgets/framework.dart:3063 E/flutter ( 8084): #46 ComponentElement.performRebuild package:flutter/…/widgets/framework.dart:4316 E/flutter ( 8084): #47 Element.rebuild package:flutter/…/widgets/framework.dart:4020 E/flutter ( 8084): #48 ComponentEle
This is my flutter analyze :
Analyzing chat... info • Name types using UpperCamelCase • lib/commandsData.dart:1:7 • camel_case_types info • Name types using UpperCamelCase • lib/deviceData.dart:1:7 • camel_case_types info • This function has a return type of 'Future<String>', but doesn't end with a return statement • lib/getterMarche.dart:25:18 • missing_return info • Name non-constant identifiers using lowerCamelCase • lib/main.dart:62:16 • non_constant_identifier_names info • This function has a return type of 'Future<String>', but doesn't end with a return statement • lib/main.dart:73:18 • missing_return info • The value of the local variable 'commandName' isn't used • lib/main.dart:75:12 • unused_local_variable info • This function has a return type of 'List<String>', but doesn't end with a return statement • lib/main.dart:94:16 • missing_return 7 issues found. (ran in 6.5s) This is the flutter doctor -v [✓] Flutter (Channel dev, v1.13.5, on Mac OS X 10.15.1 19B88, locale fr-FR) • Flutter version 1.13.5 at /Users/wassimbenjabria/flutter • Framework revision 41a911099b (9 weeks ago), 2019-12-19 13:48:02 -0800 • Engine revision 0f90e6546b • Dart version 2.8.0 (build 2.8.0-dev.0.0 aa6709974d) [✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2) • Android SDK at /Users/wassimbenjabria/Library/Android/sdk • Android NDK location not configured (optional; useful for native profiling support) • Platform android-29, build-tools 29.0.2 • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405) • All Android licenses accepted. [✓] Xcode - develop for iOS and macOS (Xcode 11.3) • Xcode at /Applications/Xcode.app/Contents/Developer • Xcode 11.3, Build version 11C29 • CocoaPods version 1.8.4 [✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome [✓] Android Studio (version 3.5) • Android Studio at /Applications/Android Studio.app/Contents • Flutter plugin installed • Dart plugin version 191.8593 • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405) [✓] VS Code (version 1.42.1) • VS Code at /Applications/Visual Studio Code.app/Contents • Flutter extension version 3.8.1 [✓] Connected device (3 available) • AOSP on IA Emulator • emulator-5554 • android-x86 • Android 9 (API 28) (emulator) • Chrome • chrome • web-javascript • Google Chrome 79.0.3945.130 • Web Server • web-server • web-javascript • Flutter Tools • No issues found!
Thanks for your help.
Here is a part of a code with one dropDownButton if you want to reproduce this error.
import 'dart:convert'; import 'package:flutter/material.dart'; import 'Get.dart'; import 'Device.dart'; import 'deviceData.dart'; var url1 = "http://localhost:48082/api/v1/device"; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override build(context) { return MaterialApp( debugShowCheckedModeBanner: false, title: 'My App', theme: ThemeData( primarySwatch: Colors.blue, ), home: MyListScreen(), ); } } class MyListScreen extends StatefulWidget { @override createState() => _MyListScreenState(); } class _MyListScreenState extends State { List<deviceData> dataDevice = deviceData.getDevicesData(); List<DropdownMenuItem<deviceData>> listDropDevice; deviceData deviceSelection; // Creation of deviceGet object with device data var deviceGet = new List<Device>(); Future<void> GetDevice() async { // CHANGED await GET.url(url1).then((response) { //END CHANGED setState(() { Iterable list = json.decode(response.body); deviceGet = list.map((model) => Device.fromJson(model)).toList(); }); }); } Future<void> wait() async { await GetDevice(); } initState() { super.initState(); wait().then((result) { var nbrDevice = deviceGet.length; for (int i = 0; i < nbrDevice;) { dataDevice.add(deviceData(deviceGet[i].name, i)); i = i + 1; } listDropDevice = buildDropdownMenuItems(dataDevice); }); } List<DropdownMenuItem<deviceData>> buildDropdownMenuItems(List devices) { List<DropdownMenuItem<deviceData>> items = List(); for (deviceData device1 in devices) { items.add( DropdownMenuItem( value: device1, child: Text(device1.name), ), ); } return items; } onChange(deviceData selectionUtilisateur) { setState(() { deviceSelection = selectionUtilisateur; }); } @override build(context) { return Scaffold( appBar: AppBar( title: Text("Device List"), ), body: Column(children: <Widget>[ Center(child: Text("")), DropdownButton( value: deviceSelection, items: listDropDevice, onChanged: onChange, hint: Text("Select the device")), ])); } }