【问题标题】:No host specified in URI file:///nullURI 文件中未指定主机:///null
【发布时间】:2021-09-09 07:08:02
【问题描述】:

我正在尝试显示作为 API 响应的图像。 下面是显示图片的代码-:

String ProfilePic;

                                 CircleAvatar(
                                    radius: 80,
                                    backgroundImage:
                                    ProfilePic != null ?
                                      NetworkImage('$ProfilePic'):
                                        // AssetImage('$ProfilePic') :
                                        AssetImage('assets/favicon.png'),
                                  ),

作为回应,我从 API 获取这些数据 -: I/flutter (4230): pexels-lisa-1107717.jpg

当我使用它时出现以下错误 -:

======== Exception caught by image resource service ================================================
The following ArgumentError was thrown resolving an image codec:
Invalid argument(s): No host specified in URI file:///null

When the exception was thrown, this was the stack: 
#0      _HttpClient._openUrl (dart:_http/http_impl.dart:2662:9)
#1      _HttpClient.getUrl (dart:_http/http_impl.dart:2573:48)
#2      NetworkImage._loadAsync (package:flutter/src/painting/_network_image_io.dart:89:59)
#3      NetworkImage.load (package:flutter/src/painting/_network_image_io.dart:50:14)
#4      ImageProvider.resolveStreamForKey.<anonymous closure> (package:flutter/src/painting/image_provider.dart:505:13)
#5      ImageCache.putIfAbsent (package:flutter/src/painting/image_cache.dart:380:22)
#6      ImageProvider.resolveStreamForKey (package:flutter/src/painting/image_provider.dart:503:83)
#7      ImageProvider.resolve.<anonymous closure> (package:flutter/src/painting/image_provider.dart:333:9)
#8      ImageProvider._createErrorHandlerAndKey.<anonymous closure>.<anonymous closure> (package:flutter/src/painting/image_provider.dart:464:26)
#9      SynchronousFuture.then (package:flutter/src/foundation/synchronous_future.dart:41:35)
#10     ImageProvider._createErrorHandlerAndKey.<anonymous closure> (package:flutter/src/painting/image_provider.dart:461:11)
#14     ImageProvider._createErrorHandlerAndKey (package:flutter/src/painting/image_provider.dart:453:16)
#15     ImageProvider.resolve (package:flutter/src/painting/image_provider.dart:330:5)
#16     DecorationImagePainter.paint (package:flutter/src/painting/decoration_image.dart:258:55)
#17     _BoxDecorationPainter._paintBackgroundImage (package:flutter/src/painting/box_decoration.dart:465:20)
#18     _BoxDecorationPainter.paint (package:flutter/src/painting/box_decoration.dart:483:5)
#19     RenderDecoratedBox.paint (package:flutter/src/rendering/proxy_box.dart:2162:17)
#20     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
#21     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
#22     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
#23     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
#24     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
#25     RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2794:15)
#26     RenderStack.paintStack (package:flutter/src/rendering/stack.dart:629:5)
#27     RenderStack.paint (package:flutter/src/rendering/stack.dart:645:7)
#28     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
#29     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
#30     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
#31     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
#32     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
#33     RenderShiftedBox.paint (package:flutter/src/rendering/shifted_box.dart:79:15)
#34     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
#35     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
#36     RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2794:15)
#37     RenderFlex.paint (package:flutter/src/rendering/flex.dart:1078:7)
#38     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
#39     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
#40     RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2794:15)
#41     RenderFlex.paint (package:flutter/src/rendering/flex.dart:1078:7)
#42     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
#43     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
#44     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:15)
#45     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
#46     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
#47     RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2794:15)
#48     RenderFlex.paint (package:flutter/src/rendering/flex.dart:1078:7)
#49     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
#50     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
#51     _RenderSingleChildViewport.paint.paintContents (package:flutter/src/widgets/single_child_scroll_view.dart:619:17)
#52     PaintingContext.pushLayer (package:flutter/src/rendering/object.dart:398:12)
#53     PaintingContext.pushClipRect (package:flutter/src/rendering/object.dart:454:7)
#54     _RenderSingleChildViewport.paint (package:flutter/src/widgets/single_child_scroll_view.dart:623:40)
#55     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
#56     PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:141:11)
#57     PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:100:5)
#58     PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:979:29)
#59     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:455:19)
#60     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:13)
#61     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:319:5)
#62     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1143:15)
#63     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1080:9)
#64     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:996:5)
#68     _invoke (dart:ui/hooks.dart:166:10)
#69     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:270:5)
#70     _drawFrame (dart:ui/hooks.dart:129:31)
(elided 6 frames from dart:async)
Image provider: NetworkImage("null", scale: 1.0)
Image key: NetworkImage("null", scale: 1.0)
====================================================================================================

我使用了网络图像,但仍然无法显示图像。我也尝试过其他解决方案,但似乎没有任何效果。

谁能帮我展示一下这个?

【问题讨论】:

  • profilepic 可以为 null 的情况,请您在获取数据的地方添加示例 json mock。

标签: flutter api imagepicker


【解决方案1】:

你的支票错了应该是这样 ProfilePic != null ? NetworkImage('$ProfilePic'):AssetImage('assets/favicon.png'),

【讨论】:

  • 仍然,我收到错误 -: Invalid argument(s): No host specified in URI file:///pexels-lisa-1107717.jpg
  • 至少现在你实际上得到了 url。确定是网络图片?响应只是资产名称 + 扩展名。这个文件是本地的吗?然后你可以使用AssetImage('assets/$ProfilePic')
  • 我试过了,但出现错误 - 无法加载资产:assets/pexels-lisa-1107717.jpg
  • 这个资产在哪里?
  • 我在 api 响应中得到了这个。
猜你喜欢
  • 2021-08-24
  • 2021-06-10
  • 2021-09-28
  • 2021-08-10
  • 2021-09-19
  • 2020-10-09
  • 2021-11-10
  • 2022-06-15
  • 1970-01-01
相关资源
最近更新 更多