【问题标题】:Flutter: GraphQL Unhandled Exception: NoSuchMethodError: The getter 'host' was called on nullFlutter:GraphQL 未处理异常:NoSuchMethodError:getter 'host' 被调用为 null
【发布时间】:2020-03-03 06:51:29
【问题描述】:

按照documentation 集成 Graphql graphql_flutter。在 Android 和 iOS 的开发模式下一切正常,但是当我尝试在发布模式下部署 Android 时,我能够生成 APK。一旦我在手机上运行,​​我就会在 Logcat 上看到这个错误

2020-03-03 12:15:09.822 7384-7408/? E/flutter: [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: NoSuchMethodError: The getter 'host' was called on null.
Receiver: null
Tried calling: host
#0      translateNetworkFailure (package:graphql/src/exceptions/io_network_exception.dart:14)
#1      translateFailure (package:graphql/src/exceptions/exceptions.dart:13)
#2      new HttpLink.<anonymous closure>.onListen (package:graphql/src/link/http/link_http.dart:104)
<asynchronous suspension>
#3      _runGuarded (dart:async/stream_controller.dart:807)
#4      _StreamController._subscribe.<anonymous closure> (dart:async/stream_controller.dart:686)
#5      _BufferingStreamSubscription._guardCallback (dart:async/stream_impl.dart:416)
#6      _StreamController._subscribe (dart:async/stream_controller.dart:685)
#7      _ControllerStream._createSubscription (dart:async/stream_controller.dart:820)
#8      _StreamImpl.listen (dart:async/stream_impl.dart:474)
#9      Stream.first (dart:async/stream.dart:1251)
#10     QueryManager._resolveQueryOnNetwork (package:graphql/src/core/query_manager.dart:119)
#11     QueryManager.fetchQueryAsMultiSourceResult (package:graphql/src/core/query_manager.dart:97)
#12     ObservableQuery.fetchResults (package:graphql/src/core/observable_query.dart:123)
#13     new ObservableQuery (package:graphql/src/core/observable_query.dart:32)
#14     QueryManager.watchQuery (package:graphql/src/core/query_manager.dart:35)
#15     GraphQLClient.watchQuery (package:graphql/src/graphql_client.dart:99)
#16     QueryState._initQuery (package:graphql_flutter/src/widgets/query.dart:60)
#17     QueryState.didChangeDependencies (package:graphql_flutter/src/widgets/query.dart:66)
#18     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4376)
#19     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201)
#20     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194)
#21     Element.updateChild (package:flutter/src/widgets/framework.dart:2988)
#22     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243)
#23     Element.rebuild (package:flutter/src/widgets/framework.dart:3947)
#24     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206)
#25     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201)
#26     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194)
#27     Element.updateChild (package:flutter/src/widgets/framework.dart:2988)
#28     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243)
#29     Element.rebuild (package:flutter/src/widgets/framework.dart:3947)
#30     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206)
#31     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201)
#32     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194)
#33     Element.updateChild (package:flutter/src/widgets/framework.dart:2988)
#34     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243)
#35     Element.rebuild (package:flutter/src/widgets/framework.dart:3947)
#36     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206)
#37     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201)
#38     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194)
#39     Element.updateChild (package:flutter/src/widgets/framework.dart:2988)
#40     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243)
#41     Element.rebuild (package:flutter/src/widgets/framework.dart:3947)
#42     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206)
#43     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201)
#44     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194)
#45     Element.updateChild (package:flutter/src/widgets/framework.dart:2988)
#46     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243)
#47     Ele

【问题讨论】:

    标签: flutter graphql


    【解决方案1】:

    想通了。是因为权限问题。默认情况下,当 Android 应用程序在开发中运行时,它将具有 INTERNET 权限。

    一旦您发布,INTERNET 权限将不再可用。可以查看官方documentation here

    解决方案: 打开安卓清单

    ./android/app/src/main/AndroidManifest.xml
    

    为您的清单添加互联网权限

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-06
      • 2021-07-15
      • 1970-01-01
      • 2021-09-24
      • 2020-12-26
      • 2018-09-10
      • 2021-08-06
      • 2021-11-11
      相关资源
      最近更新 更多