Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

'_codec != null': does not allow images to render on iOS #38

Closed
alexwhiteside1 opened this issue Apr 19, 2018 · 4 comments
Closed

'_codec != null': does not allow images to render on iOS #38

alexwhiteside1 opened this issue Apr 19, 2018 · 4 comments

Comments

@alexwhiteside1
Copy link

alexwhiteside1 commented Apr 19, 2018

This may be a duplicate of #35. I have tried uninstalling/upgrading/restarting in various ways and it stays consistent.

I have a flutter project that compiles to a complete android app, and parts are used within a native iOS (Swift) app. We've been doing most of our development in Android, where this plugin works great, however in iOS it does not load any images and throws an exception:

'package:flutter/src/painting/image_stream.dart': Failed assertion: line 362 pos 12: '_codec != null': is not true.
#0      _AssertionError._doThrowNew (dart:core/runtime/liberrors_patch.dart:37:39)
#1      _AssertionError._throwNew (dart:core/runtime/liberrors_patch.dart:33:5)
#2      MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart)
#3      _RootZone.runUnary (dart:async/zone.dart:1381:54)
#4      _FutureListener.handleValue (dart:async/future_impl.dart:129:18)
#5      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:637:45)
#6      Future._propagateToListeners (dart:async/future_impl.dart:666:32)
#7      Future._completeError (dart:async/future_impl.dart:489:5)
#8      _SyncCompleter._completeError (dart:async/future_impl.dart:55:12)
#9      _Completer.completeError (dart:async/future_impl.dart:27:5)
#10     CachedNetworkImageProvider._loadAsync (package:cached_network_image/cached_network_image.dart)
<asynchronous suspension>
#11     CachedNetworkImageProvider.load (package:cached_network_image/cached_network_image.dart:452:16)
#12     ImageProvider.resolve.<anonymous closure>.<anonymous closure> (package:flutter/src/painting/image_provider.dart:265:86)
#13     ImageCache.putIfAbsent (package:flutter/src/painting/image_cache.dart:82:22)
#14     ImageProvider.resolve.<anonymous closure> (package:flutter/src/painting/image_provider.dart:265:63)
#15     SynchronousFuture.then (package:flutter/src/foundation/synchronous_future.dart:38:29)
#16     ImageProvider.resolve (package:flutter/src/painting/image_provider.dart:263:30)
#17     _ImageState._resolveImage (package:flutter/src/widgets/image.dart:526:20)
#18     _ImageState.didChangeDependencies (package:flutter/src/widgets/image.dart:501:5)
#19     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3750:12)
#20     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#21     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#22     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#23     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
#24     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#25     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#26     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
#27     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#28     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#29     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#30     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#31     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#32     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#33     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#34     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#35     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
#36     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#37     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#38     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
#39     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#40     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#41     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#42     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#43     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#44     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3752:11)
#45     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#46     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#47     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#48     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#49     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#50     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#51     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#52     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#53     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4742:32)
#54     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#55     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#56     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
#57     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#58     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4742:32)
#59     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#60     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4742:32)
#61     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#62     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#63     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
#64     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#65     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#66     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
#67     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#68     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#69     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
#70     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#71     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#72     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#73     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#74     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#75     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#76     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#77     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4742:32)
#78     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#79     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4742:32)
#80     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#81     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#82     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
#83     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#84     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#85     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#86     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#87     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#88     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#89     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#90     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#91     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
#92     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#93     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#94     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
#95     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#96     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#97     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
#98     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#99     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#100    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
#101    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#102    Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#103    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#104    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#105    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#106    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3752:11)
#107    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#108    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#109    Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#110    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4637:14)
#111    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#112    Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#113    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#114    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#115    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#116    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3752:11)
#117    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#118    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#119    Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#120    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#121    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#122    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#123    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#124    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#125    Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#126    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#127    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#128    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#129    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#130    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#131    Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#132    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#133    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#134    ProxyElement.update (package:flutter/src/widgets/framework.dart:3892:5)
#135    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#136    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#137    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#138    ProxyElement.update (package:flutter/src/widgets/framework.dart:3892:5)
#139    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#140    RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:4362:32)
#141    MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4752:17)
#142    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#143    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#144    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#145    StatefulElement.update (package:flutter/src/widgets/framework.dart:3782:5)
#146    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#147    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#148    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#149    ProxyElement.update (package:flutter/src/widgets/framework.dart:3892:5)
#150    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#151    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#152    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#153    StatefulElement.update (package:flutter/src/widgets/framework.dart:3782:5)
#154    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#155    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4644:14)
#156    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#157    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#158    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#159    StatelessElement.update (package:flutter/src/widgets/framework.dart:3685:5)
#160    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#161    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4644:14)
#162    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#163    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#164    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#165    StatefulElement.update (package:flutter/src/widgets/framework.dart:3782:5)
#166    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#167    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#168    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#169    StatefulElement.update (package:flutter/src/widgets/framework.dart:3782:5)
#170    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#171    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#172    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#173    ProxyElement.update (package:flutter/src/widgets/framework.dart:3892:5)
#174    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#175    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#176    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#177    ProxyElement.update (package:flutter/src/widgets/framework.dart:3892:5)
#178    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#179    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#180    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#181    StatefulElement.update (package:flutter/src/widgets/framework.dart:3782:5)
#182    Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#183    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#184    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#185    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2225:33)
#186    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:621:20)
#187    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:208:5)
#188    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
#189    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9)
#190    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:842:5)
#191    _invoke (dart:ui/hooks.dart:120:13)
#192    _drawFrame (dart:ui/hooks.dart:109:3)

I have tried using a CachedNetworkImage, as well as a CachedNetworkImageProvider (see code below, including commented out version below. Both work fine on Android, neither on iOS.

Widget getCardImage(String fileName) {
  if(fileName==null){
    fileName="default_card.png";
  }

  Widget image =  new CachedNetworkImage(imageUrl: "https://d2pjgca6juiy4m.cloudfront.net/" + fileName);
  print(image.toString(minLevel: DiagnosticLevel.info));
  return image;
  /**return new Image(

      image: new CachedNetworkImageProvider(
          "https://d2pjgca6juiy4m.cloudfront.net/" + fileName));*/

}

I've tried printing the debug string, which doesn't provide any detail, and trying to get any more detail into the object doesn't give me much. A test image (if it matters) would be https://d2pjgca6juiy4m.cloudfront.net/default_card.png. All images in this call and others throughout the all (which are all failing on iOS) retrieve PNGs from CloudFront.

See image attachment of same code working on Android and not iOS.
screen shot 2018-04-18 at 11 56 10 pm

@renefloor
Copy link
Contributor

Thanks for providing the test image.
Does the library work for you on iOS if you use an image not served by cloudfront? Or doesn't load any image?

@alexwhiteside1
Copy link
Author

I can't load any image. I just tried 5 from various sources, http/https, CDN/no CDN, jpeg/png, no luck.

Note that this is an integration between a native app and a flutter app, I'm not sure if there are any required Xcode settings to allow this to work. My flutter portion is able to make API calls, so it shouldn't be an internet connection, but if there is any more data I can get for you, just let me know.

@renefloor
Copy link
Contributor

_codec != null should not occur anymore in 0.4.1. Could you have a look if you still get an error?

@renefloor
Copy link
Contributor

I will close this issue for now. If you still have a problem you can reopen it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants