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

Error when passing the invalid argument #137

Closed
matsuo-ts opened this issue Feb 28, 2019 · 2 comments
Closed

Error when passing the invalid argument #137

matsuo-ts opened this issue Feb 28, 2019 · 2 comments

Comments

@matsuo-ts
Copy link

Hello, thank you for making this package and I really love this.

Today I encountered below error when I pass the non http string as a parameter of imageUrl.
In the version of 0.5.1, app never crashed and it shows the error widget although the error message was printed on console window.

I believe it would be better to render the error widget same as older version rather than crashing the app.

flutter: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
flutter: The following assertion was thrown building StreamBuilder<FileInfo>-[#f2df5](dirty, state:
flutter: _StreamBuilderBaseState<FileInfo, AsyncSnapshot<FileInfo>>#4cf94):
flutter: type 'ArgumentError' is not a subtype of type 'bool'
flutter:
flutter: Either the assertion indicates an error in the framework itself, or we should provide substantially
flutter: more information in this error message to help you determine and fix the underlying cause.
flutter: In either case, please report this assertion by filing a bug on GitHub:
flutter:   https://github.com/flutter/flutter/issues/new?template=BUG.md
flutter:
flutter: When the exception was thrown, this was the stack:
flutter: #0      CachedNetworkImageState._animatedWidget.<anonymous closure> 
package:cached_network_image/src/cached_image_widget.dart:254
flutter: #1      StreamBuilder.build 
package:flutter/…/widgets/async.dart:423
flutter: #2      _StreamBuilderBaseState.build 
package:flutter/…/widgets/async.dart:125
flutter: #3      StatefulElement.build 
package:flutter/…/widgets/framework.dart:3825
flutter: #4      ComponentElement.performRebuild 
package:flutter/…/widgets/framework.dart:3736
flutter: #5      Element.rebuild 
package:flutter/…/widgets/framework.dart:3559
flutter: #6      BuildOwner.buildScope 
package:flutter/…/widgets/framework.dart:2273
flutter: #7      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame 
package:flutter/…/widgets/binding.dart:700
flutter: #8      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback 
package:flutter/…/rendering/binding.dart:268
flutter: #9      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback 
package:flutter/…/scheduler/binding.dart:988
flutter: #10     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame 
package:flutter/…/scheduler/binding.dart:928
flutter: #11     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame 
package:flutter/…/scheduler/binding.dart:840
flutter: #15     _invoke (dart:ui/hooks.dart:209:10)
flutter: #16     _drawFrame (dart:ui/hooks.dart:168:3)
flutter: (elided 3 frames from package dart:async)
flutter: ════════════════════════════════════════════════════════════════════════════════════════════════════
[✓] Flutter (Channel stable, v1.2.1, on Mac OS X 10.13.6 17G5019, locale en-GB)
    • Flutter version 1.2.1 at /Users/matsuo/flutter
    • Framework revision 8661d8aecd (13 days ago), 2019-02-14 19:19:53 -0800
    • Engine revision 3757390fa4
    • Dart version 2.1.2 (build 2.1.2-dev.0.0 0a7dcf17eb)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/matsuo/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.1, Build version 10B61
    • ios-deploy 1.9.4
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 33.3.1
    • Dart plugin version 182.5215
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)

[✓] VS Code (version 1.31.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 2.23.1

[✓] Connected device (1 available)
    • iPhone 6s • 58EA929E-37C3-4809-8B55-44BC2AC57B8F • ios • iOS 12.1 (simulator)

• No issues found!
@mayurprajapati
Copy link

mayurprajapati commented Mar 3, 2019

I have also similar error...
---------------------------------------------------------------LOG---------------------------------------------------------------

[ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: Invalid argument(s): No host specified in URI 
E/flutter (27069): #0      BaseCacheManager.getFile (package:flutter_cache_manager/src/cache_manager.dart:120:11)
E/flutter (27069): <asynchronous suspension>
E/flutter (27069): #1      CachedNetworkImageState._animatedWidget (package:cached_network_image/src/cached_image_widget.dart:261:12)
E/flutter (27069): #2      CachedNetworkImageState.build (package:cached_network_image/src/cached_image_widget.dart:194:12)
E/flutter (27069): #3      StatefulElement.build (package:flutter/src/widgets/framework.dart:3825:27)
E/flutter (27069): #4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3736:15)
E/flutter (27069): #5      Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
E/flutter (27069): #6      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
E/flutter (27069): #7      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11)
E/flutter (27069): #8      ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
E/flutter (27069): #9      Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
E/flutter (27069): #10     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
E/flutter (27069): #11     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14)
E/flutter (27069): #12     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
E/flutter (27069): #13     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
E/flutter (27069): #14     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
E/flutter (27069): #15     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
E/flutter (27069): #16     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
E/flutter (27069): #17     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
E/flutter (27069): #18     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
E/flutter (27069): #19     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
E/flutter (27069): #20     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
E/flutter (27069): #21     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
E/flutter (27069): #22     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
E/flutter (27069): #23     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
E/flutter (27069): #24     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
E/flutter (27069): #25     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
E/flutter (27069): #26     _ListTileElement._mountChild (package:flutter/src/material/list_tile.dart:591:30)
E/flutter (27069): #27     _ListTileElement.mount (package:flutter/src/material/list_tile.dart:605:5)
E/flutter (27069): #28     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
E/flutter (27069): #29     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
E/flutter (27069): #30     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
E/flutter (27069): #31     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
E/flutter (27069): #32     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
E/flutter (27069): #33     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
E/flutter (27069): #34     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
E/flutter (27069): #35     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
E/flutter (27069): #36     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14)
E/flutter (27069): #37     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
E/flutter (27069): #38     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
E/flutter (27069): #39     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
E/flutter (27069): #40     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
E/flutter (27069): #41     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
E/flutter (27069): #42     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
E/flutter (27069): #43     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
E/flutter (27069): #44     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
E/flutter (27069): #45     SingleChildRenderObjectElement.mount (
E/flutter (27069): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: Invalid argument(s): No host specified in URI 
E/flutter (27069): #0      BaseCacheManager.getFile (package:flutter_cache_manager/src/cache_manager.dart:120:11)
E/flutter (27069): <asynchronous suspension>
E/flutter (27069): #1      CachedNetworkImageState._animatedWidget (package:cached_network_image/src/cached_image_widget.dart:261:12)
E/flutter (27069): #2      CachedNetworkImageState.build (package:cached_network_image/src/cached_image_widget.dart:194:12)
E/flutter (27069): #3      StatefulElement.build (package:flutter/src/widgets/framework.dart:3825:27)
E/flutter (27069): #4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3736:15)
E/flutter (27069): #5      Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
E/flutter (27069): #6      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
E/flutter (27069): #7      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11)
E/flutter (27069): #8      ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
E/flutter (27069): #9      Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
E/flutter (27069): #10     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
E/flutter (27069): #11     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14)
E/flutter (27069): #12     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
E/flutter (27069): #13     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
E/flutter (27069): #14     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
E/flutter (27069): #15     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
E/flutter (27069): #16     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
E/flutter (27069): #17     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
E/flutter (27069): #18     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
E/flutter (27069): #19     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
E/flutter (27069): #20     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
E/flutter (27069): #21     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
E/flutter (27069): #22     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
E/flutter (27069): #23     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
E/flutter (27069): #24     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
E/flutter (27069): #25     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
E/flutter (27069): #26     _ListTileElement._mountChild (package:flutter/src/material/list_tile.dart:591:30)
E/flutter (27069): #27     _ListTileElement.mount (package:flutter/src/material/list_tile.dart:605:5)
E/flutter (27069): #28     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
E/flutter (27069): #29     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
E/flutter (27069): #30     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
E/flutter (27069): #31     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
E/flutter (27069): #32     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
E/flutter (27069): #33     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
E/flutter (27069): #34     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
E/flutter (27069): #35     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
E/flutter (27069): #36     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14)
E/flutter (27069): #37     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
E/flutter (27069): #38     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
E/flutter (27069): #39     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
E/flutter (27069): #40     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
E/flutter (27069): #41     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
E/flutter (27069): #42     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
E/flutter (27069): #43     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
E/flutter (27069): #44     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
E/flutter (27069): #45     SingleChildRenderObjectElement.mount (
I/flutter (27069): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (27069): The following assertion was thrown building StreamBuilder<FileInfo>-[#09df4](dirty, state:
I/flutter (27069): _StreamBuilderBaseState<FileInfo, AsyncSnapshot<FileInfo>>#b1324):
I/flutter (27069): type 'ArgumentError' is not a subtype of type 'Exception'
I/flutter (27069): 
I/flutter (27069): Either the assertion indicates an error in the framework itself, or we should provide substantially
I/flutter (27069): more information in this error message to help you determine and fix the underlying cause.
I/flutter (27069): In either case, please report this assertion by filing a bug on GitHub:
I/flutter (27069):   https://github.com/flutter/flutter/issues/new?template=BUG.md
I/flutter (27069): 
I/flutter (27069): When the exception was thrown, this was the stack:
I/flutter (27069): #0      CachedNetworkImageState._animatedWidget.<anonymous closure> (package:cached_network_image/src/cached_image_widget.dart:269:52)
I/flutter (27069): #1      StreamBuilder.build (package:flutter/src/widgets/async.dart:423:74)
I/flutter (27069): #2      _StreamBuilderBaseState.build (package:flutter/src/widgets/async.dart:125:48)
I/flutter (27069): #3      StatefulElement.build (package:flutter/src/widgets/framework.dart:3825:27)
I/flutter (27069): #4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3736:15)
I/flutter (27069): #5      Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (27069): #6      BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2273:33)
I/flutter (27069): #7      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:700:20)
I/flutter (27069): #8      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:268:5)
I/flutter (27069): #9      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:988:15)
I/flutter (27069): #10     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:928:9)
I/flutter (27069): #11     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:840:5)
I/flutter (27069): #15     _invoke (dart:ui/hooks.dart:209:10)
I/flutter (27069): #16     _drawFrame (dart:ui/hooks.dart:168:3)
I/flutter (27069): (elided 3 frames from package dart:async)
I/flutter (27069): ════════════════════════════════════════════════════════════════════════════════════════════════════
I/flutter (27069): Another exception was thrown: type 'ArgumentError' is not a subtype of type 'Exception'

--------------------------------------------------------------------------------------------------------------------------------

I have changed following function in cache_manager.dart

Stream<FileInfo> getFile(String url, {Map<String, String> headers}) async* {
    var cacheFile = await getFileFromCache(url);
    if (cacheFile != null) {
      yield cacheFile;
    }
    if (cacheFile == null || cacheFile.validTill.isBefore(DateTime.now())) {
      try {
        var webFile = await webHelper.downloadFile(url, authHeaders: headers);
        if (webFile != null) {
          yield webFile;
        }
      } catch (e) {
        if (cacheFile == null) {
          throw e;
        }
      }
    }
  }

to this

Stream<FileInfo> getFile(String url, {Map<String, String> headers}) async* {
    var cacheFile = await getFileFromCache(url);
    if (cacheFile != null) {
      yield cacheFile;
    }
    if (cacheFile == null || cacheFile.validTill.isBefore(DateTime.now())) {
      try {
        var webFile = await webHelper.downloadFile(url, authHeaders: headers);
        if (webFile != null) {
          yield webFile;
        }
      } catch (e) {
//        if (cacheFile == null) {
//          throw e;
//        }
      }
    }
  }

Now it is not giving me that error

@renefloor
Copy link
Collaborator

Should work fine now in 0.7.0

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

3 participants