質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

Q&A

解決済

1回答

1054閲覧

The following ArgumentError was thrown resolving an image codec:

ituking

総合スコア80

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

0グッド

0クリップ

投稿2023/05/26 02:00

編集2023/05/27 12:06

実現したいこと

  • The following ArgumentError was thrown resolving an imagecodec:Invalid argument(s): No host specified in URI file:///を解決し、今後のFlutter開発の知見に役立てる。

前提

FlutterでNetworkImageを用いたアプリの開発をしています。
画面遷移処理実装を行ったところ、以下のエラーに遭遇しました。

発生している問題・エラーメッセージ

The following ArgumentError was thrown resolving an image codec: Invalid argument(s): No host specified in URI file:/// When the exception was thrown, this was the stack: #0 _HttpClient._openUrl (dart:_http/http_impl.dart:2733:9) #1 _HttpClient.getUrl (dart:_http/http_impl.dart:2609:48) #2 NetworkImage._loadAsync (package:flutter/src/painting/_network_image_io.dart:106:5 9) #3 NetworkImage.loadBuffer (package:flutter/src/painting/_network_image_io.dart:67:14 ) 〜以下省略〜 Image provider: NetworkImage("", scale: 1.0) Image key: NetworkImage("", scale: 1.0)

該当のソースコード

top_page.dart

1import 'package:chat_app/firestore/room_firestore.dart'; 2import 'package:chat_app/model/talk_room.dart'; 3import 'package:chat_app/pages/talk_room_page.dart'; 4import 'package:chat_app/utils/widget_utils.dart'; 5import 'package:cloud_firestore/cloud_firestore.dart'; 6import 'package:flutter/material.dart'; 7 8class TopPage extends StatefulWidget { 9 const TopPage({super.key}); 10 11 @override 12 State<TopPage> createState() => _TopPageState(); 13} 14 15class _TopPageState extends State<TopPage> { 16 @override 17 Widget build(BuildContext context) { 18 return Scaffold( 19 appBar: WidgetUtils.createAppBar("Chats"), 20 body: StreamBuilder<QuerySnapshot>( 21 stream: RoomFireStore.joinedRoomSnapshot, 22 builder: (context, streamSnapshot) { 23 if (streamSnapshot.hasData) { 24 return FutureBuilder<List<TalkRoom>?>( 25 future: RoomFireStore.fetchJoinedRooms(streamSnapshot.data!), 26 builder: (context, futureSnapshot) { 27 if (futureSnapshot.connectionState == 28 ConnectionState.waiting) { 29 return const Center( 30 child: CircularProgressIndicator(), 31 ); 32 } else { 33 if (futureSnapshot.hasData) { 34 List<TalkRoom> talkRooms = futureSnapshot.data!; 35 return SizedBox( 36 height: MediaQuery.of(context).size.height, 37 child: ListView.builder( 38 itemCount: talkRooms.length, 39 itemBuilder: (context, index) { 40 return InkWell( 41 onTap: () { 42 Navigator.push( 43 context, 44 MaterialPageRoute( 45 builder: (context) => TalkRoomPage( 46 talkRoom: talkRooms[index], 47 ), 48 ), 49 ); 50 }, 51 child: SizedBox( 52 height: 70, 53 child: Row( 54 children: [ 55 Padding( 56 padding: const EdgeInsets.symmetric( 57 horizontal: 8.0), 58 child: CircleAvatar( 59 radius: 25, 60 backgroundImage: talkRooms[index] 61 .talkUser 62 .imagePath == 63 null 64 ? null 65 : NetworkImage(talkRooms[index] 66 .talkUser 67 .imagePath!), 68 ), 69 ), 70 Expanded( 71 child: Column( 72 crossAxisAlignment: 73 CrossAxisAlignment.start, 74 mainAxisAlignment: 75 MainAxisAlignment.center, 76 children: [ 77 Text( 78 talkRooms[index].talkUser.name, 79 style: const TextStyle( 80 fontWeight: FontWeight.bold, 81 ), 82 ), 83 Text( 84 talkRooms[index].lastMessage ?? 85 "", 86 style: const TextStyle( 87 color: Colors.grey, 88 ), 89 maxLines: 1, 90 overflow: TextOverflow.ellipsis, 91 ), 92 ], 93 ), 94 ), 95 ], 96 ), 97 ), 98 ); 99 }), 100 ); 101 } else { 102 return const Center( 103 child: Text("FAILED"), 104 ); 105 } 106 } 107 }); 108 } else { 109 return const Center( 110 child: CircularProgressIndicator(), 111 ); 112 } 113 }), 114 ); 115 } 116} 117

試したこと

The following ArgumentError was thrown resolving an image
codec:
Invalid argument(s): No host specified in URI file:///で検索。以下のページにヒット。
info.plistに <key>FLTEnableImpeller</key>
<false />と記載すると解決したと記載していたので、記載するも再度同様のエラー。
画面遷移実装時に書いたコードもコメントアウトして再実行するも。再び同様のエラー発生。
以下、複数のページを漁るも、解決できなかったので有識者の方々にお力をお貸しいただきたいです。

補足情報(FW/ツールのバージョンなど)

[✓] Flutter (Channel stable, 3.7.12, on macOS 13.3.1 22E772610a
darwin-x64, locale ja-JP)
[✓] Android toolchain - develop for Android devices (Android SDK version
32.1.0-rc1)
[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.2)
[✓] VS Code (version 1.78.2)
[✓] Connected device (3 available)
[✓] HTTP Host Availability

The following ArgumentError was thrown resolving an image codec:Invalid argument(s): No host specified in URI file:///でヒットしたページ

https://github.com/flutter/flutter/issues/126768
https://docs.flutter.dev/perf/impeller#ios

他に検索したが、まだ実行していないページ

https://www.appsloveworld.com/flutter/100/4/flutter-httpclient-invalid-arguments-no-host-specified-in-uri

帰宅後、試してみようかなと思ったページ

https://stackoverflow.com/questions/64514827/invalid-arguments-no-host-specified-in-uri-image-network
https://stackoverflow.com/questions/52568872/flutter-how-to-handle-image-network-error-like-404-or-wrong-url

errorBuilderについて調べたページ

https://api.flutter.dev/flutter/widgets/Image/errorBuilder.html

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

NetworkImageに空文字を入れる設定をしていたことにより発生。
NetworkImage周りの設定を見直したことにより解決。

投稿2023/05/29 10:09

ituking

総合スコア80

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問