如何解决Fluter跨平台的网络和移动设备
我正在尝试用Flutter构建一个跨平台的跨平台,并使用协议缓冲区。因此,在我的代码中,我具有登录功能,并且需要导入grpc_web:
import 'package:Flutter/foundation.dart';
import 'package:grpc/grpc.dart';
import 'package:dsu_site/models/user.pb.dart';
import 'package:dsu_site/models/user.pbgrpc.dart' as grpc;
import 'package:grpc/grpc_web.dart' as grpc_web;
import 'package:Flutter/services.dart';
import 'dart:convert';
Future<Utilizador> login({String username,String password}) async {
Utilizador user;
if (kIsWeb) {
final channel =
grpc_web.GrpcWebClientChannel.xhr(Uri.parse('https://pl1772:8443'));
final service = grpc.UtilizadoresServiceClient(
channel,);
var request = Auth();
request.username = username;
request.password = password;
try {
user = await service.login(request);
} catch (e) {
print('Error in login form: $e');
user = grpc.Utilizador();
}
return user;
}
final caCert = await rootBundle.loadString('certs/server.crt');
final ClientChannel channel = ClientChannel(
'localhost',port: 9002,options: ChannelOptions(
connectionTimeout: Duration(seconds: 5),credentials: ChannelCredentials.secure(
authority: 'localhost',certificates: utf8.encode(caCert),),);
final service = grpc.UtilizadoresServiceClient(channel);
var request = Auth();
request.username = username;
request.password = password;
try {
user = await service.login(request);
} catch (e) {
print('Error in login form: $e');
user = grpc.Utilizador();
}
return user;
}
问题是,当我针对Web(使用chrome)运行它时,这很好,但是对于移动设备,我会遇到以下错误:
在dsu_site中运行“ Flutter pub get” ...在以下位置启动lib / main.dart sdk gphone x86在调试模式下... lib / main.dart无效的depfile: /home/sfm1977/Programming/dsu_site/.dart_tool/Flutter_build/efe6e5ca256642d6c0ca767b5f0e6af5/kernel_snapshot.d无效的depfile: /home/sfm1977/Programming/dsu_site/.dart_tool/Flutter_build/efe6e5ca256642d6c0ca767b5f0e6af5/kernel_snapshot.d ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib/src/client/ transport / xhr_transport.dart:17:8: 错误:找不到:'dart:html'导入'dart:html'; ^ ../../.pub-cache/hosted/pub.dartlang.org/http-0.12.2/lib/src/browser_client.dart:6:8: 错误:找不到:'dart:html'导入'dart:html'; ^ ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib/src/client/transport/xhr_transport.dart:40:9: 错误:找不到类型'HttpRequest'。最后的HttpRequest _request; ^^^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib/src/client/transport/xhr_transport.dart:168: 27: 错误:找不到类型'HttpRequest'。虚空 _initializeRequest(HttpRequest请求,Map
元数据){ ^^^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib/src/client/transport/xhr_transport.dart:181: 3: 错误:找不到类型'HttpRequest'。 HttpRequest createHttpRequest() => HttpRequest(); ^^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/http-0.12.2/lib/src/browser_client.dart:34:18: 错误:“ HttpRequest”不是类型。 final _xhrs = {}; ^^^^^^^^^^^^^ .. / .. /。pub-cache / hosting烦恼的人/pub.dartlang.org/grpc-2.7.0/lib/src/client/transport/xhr_transport.dart:40 :9: 错误:“ HttpRequest”不是类型。最后的HttpRequest _request; ^^^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib/src/client/transport/xhr_transport.dart:66: 14: 错误:找不到Getter:“ HttpRequest”。 情况HttpRequest.HEADERS_RECEIVED: ^^^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib/src/client/transport/xhr_transport.dart:69: 14: 错误:找不到Getter:“ HttpRequest”。 情况HttpRequest.DONE: ^^^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib/src/client/transport/xhr_transport.dart:82: 30: 错误:“ ProgressEvent”不是类型。 _request.onError.listen((ProgressEvent事件){ ^^^^^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib/src/client/transport/xhr_transport.dart: 168:27: 错误:“ HttpRequest”不是类型。虚空 _initializeRequest(HttpRequest请求,Map 元数据){ ^^^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib/src/client/transport/xhr_transport.dart:181: 38: 错误:未为该类定义方法'HttpRequest' “ XhrClientConnection”。
- “ XhrClientConnection”来自“ package:grpc / src / client / transport / xhr_transport.dart” ('../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib/src/client/transport/xhr_transport.dart')。 尝试将名称更正为现有方法的名称,或定义 一个名为“ HttpRequest”的方法。 HttpRequest createHttpRequest()=> HttpRequest(); ^^^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib/src/client/transport/xhr_transport.dart:200: 11: 错误:“ HttpRequest”不是类型。 最终的HttpRequest请求= createHttpRequest(); ^^^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/http-0.12.2/lib/src/browser_client.dart:58:34: 错误:“斑点”不是类型。 var blob = xhr.response as Blob吗? Blob([]); ^^^^ ../../.pub-cache/hosted/pub.dartlang.org/http-0.12.2/lib/src/browser_client.dart:46:15: 错误:未为该类定义方法'HttpRequest' “ browserClient”。
- “ browserClient”来自“ package:http / src / browser_client.dart”(“ ../../。pub-cache / hosted / pub.dartlang.org / http-0.12.2 / lib / src / browser_client.dart')。 尝试将名称更正为现有方法的名称,或定义 一个名为“ HttpRequest”的方法。 var xhr = HttpRequest(); ^^^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/http-0.12.2/lib/src/browser_client.dart:58:42: 错误:未为类“ browserClient”定义方法“ Blob”。
- “ browserClient”来自“ package:http / src / browser_client.dart”(“ ../../。pub-cache / hosted / pub.dartlang.org / http-0.12.2 / lib / src / browser_client.dart')。 尝试将名称更正为现有方法的名称,或定义 一种名为“ Blob”的方法。 var blob = xhr.response as Blob吗? Blob([]); ^^^^ ../../.pub-cache/hosted/pub.dartlang.org/http-0.12.2/lib/src/browser_client.dart:59:20: 错误:未为该类定义方法'FileReader' “ browserClient”。
- “ browserClient”来自“ package:http / src / browser_client.dart”(“ ../../。pub-cache / hosted / pub.dartlang.org / http-0.12.2 / lib / src / browser_client.dart')。 尝试将名称更正为现有方法的名称,或定义 一个名为“ FileReader”的方法。 var reader = FileReader(); ^^^^^^^^^^^未处理的异常:filesystemexception(uri = org-dartlang-untranslatable-uri:dart%3Ahtml; message = StandardFileSystem仅支持文件:*和数据:* URI) [38; 5; 248m#0 StandardFileSystem.entityForUri (package:front_end / src / api_prototype / standard_file_system.dart:33:7)[39; 49m [38; 5; 248m#1 asFileUri (package:vm / kernel_front_end.dart:599:37)[39; 49m [38; 5; 248m#2
writeDepfile(package:vm / kernel_front_end.dart:739:21)[39; 49m[38; 5; 244m [39; 49m [38; 5; 248m#3
FrontendCompiler.compile (package:frontend_server / frontend_server.dart:554:15)[39; 49m[38; 5; 244m [39; 49m [38; 5; 248m#4
_FlutterFrontendCompiler.compile(package:Flutter_frontend_server / server.dart:43:22)[39; 49m[38; 5; 248m#5起动器 (package:Flutter_frontend_server / server.dart:180:27)[39; 49m [38; 5; 248m#6主 (file:///b/s/w/ir/cache/builder/src/Flutter/Flutter_frontend_server/bin/starter.dart:13:30)[39; 49m
[38; 5; 244m#7 _startIsolate。 (dart:isolate-patch / isolate_patch.dart:299:32)[39; 49m [38; 5; 244m#8
_RawReceivePortImpl._handleMessage(dart:isolate-patch / isolate_patch.dart:168:12)[39; 49m失败:构建失败,并出现异常。
其中:脚本'/home/sfm1977/Flutter/packages/Flutter_tools/gradle/Flutter.gradle' 线:900
出了什么问题:任务':app:compileFlutterBuildDebug'的执行失败。
进程'command'/ home / sfm1977 / Flutter / bin / Flutter''完成,退出值非零1
是否可以同时运行两个发行版,网络版和移动版?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。