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

在10秒钟内构建失败异常:Gradle任务assembleDebug失败,原因是 退出代码1已退出(sigterm)

是否可以同时运行两个发行版,网络版和移动版?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...