对于网络连接,我使用dio
,并从Connectivity
检查连接状态。
在这里,我检查网络状态:
@override
Widget build(BuildContext context) {
bloc.checkConnectivity(Connectivity());
return StreamBuilder(
stream: bloc.getInitApp,
builder: (context, AsyncSnapshot<InitApp> initApp) {
if (initApp.hasData) {
return prepareMain(initApp.data);
} else {
return Center(
child: CircularProgressIndicator(),
);
}
});
}
checkConnectivity
方法:
checkConnectivity(Connectivity _connectivity) {
_connectivity.onConnectivityChanged.listen((ConnectivityResult result){
if (result == ConnectivityResult.mobile ||
result == ConnectivityResult.wifi) {
fetchInitApp();
}
});
}
但是最终,App仅在Android设备上运行,但在iOS(Device / Simulator)上发生此错误:
Error connecting to the service protocol: HttpException: , uri = http://127.0.0.1:1024/ws
我尝试在没有Api
的情况下调用Connectivity
,该应用程序运行良好,但仅在Android上就可以获取数据,而对于iOS仍然存在问题。
也是,它发生在Dart http
软件包中。
答案 0 :(得分:1)
如果要从Mac共享网络,请禁用它。对我有用。
答案 1 :(得分:1)
使用Android API 28代替API 29。
对我有用。
答案 2 :(得分:0)
只需将您的设备与IDE重新连接,然后重新启动IDE,即可正常工作。
答案 3 :(得分:0)
运行flutter clean
命令-它删除以前的版本。
然后执行try flutter run
命令
答案 4 :(得分:0)
我有同样的问题。发生这种情况时,我拔下了iPhone的插头,它开始工作。
答案 5 :(得分:0)
我遇到了同样的问题,我在Windows中使用的是Android Studio。问题出在我要用于FB登录的flutter_facebook_login依赖项中(使用firebase)。 该依赖项的版本为3.0.0,所以最后我删除了此依赖项,一切正常
答案 6 :(得分:0)
好像Facebook插件引起了this issue。 如果您正在使用它,请尝试将其禁用。
答案 7 :(得分:0)
任何足够老的插件都可能导致此问题。如果您确实需要该插件,并且尚未最近更新,则可以将该文件夹本地添加到您的项目中,并升级gradle构建文件。但这仅是在您找不到其他最近更新的插件的情况下。 Facebook登录插件在最近的更新中解决了此问题,因此最新的Facebook登录插件不再有此故障。对于我来说,我必须一个个检查一个软件包,看看哪个软件包引起了问题。这涉及打开一个新的android studio项目,仅添加flutter包,没有其他代码,然后运行应用程序并逐个添加插件,直到找到哪个插件有问题为止。一种更快的方法是检查pub.dev上的每个插件,看看哪个插件最近几个月没有更新,并且正在使用较旧的gradle文件。
答案 8 :(得分:-1)
只需升级你的颤振,这对我有用