flutterでUI作成している時につまづいたのでメモ。
やろうとしたこと
Image.network({'取得したリンクのurl'})
発生したエラー
- 画像は表示されず。
- 画像取得時にエラーが出ているよう
E/FlutterJNI( 2168): Failed to decode image
E/FlutterJNI( 2168): android.graphics.ImageDecoder$DecodeException: Failed to create image decoder with message 'unimplemented'Input contained an error.
E/FlutterJNI( 2168): at android.graphics.ImageDecoder.nCreate(Native Method)
E/FlutterJNI( 2168): at android.graphics.ImageDecoder.access$200(ImageDecoder.java:172)
E/FlutterJNI( 2168): at android.graphics.ImageDecoder$ByteBufferSource.createImageDecoder(ImageDecoder.java:242)
E/FlutterJNI( 2168): at android.graphics.ImageDecoder.decodeBitmapImpl(ImageDecoder.java:1870)
E/FlutterJNI( 2168): at android.graphics.ImageDecoder.decodeBitmap(ImageDecoder.java:1863)
E/FlutterJNI( 2168): at io.flutter.embedding.engine.FlutterJNI.decodeImage(FlutterJNI.java:524)
対処方法
上記で取得していたリンクは、あくまで画像をプレビューするためのURLらしく、画像自体を取得するには別途URLが必要らしい
以下手順
- リンクのアクセス権を変更
2. URLを以下のように変更する
-
before
https://drive.google.com/file/d/{id}/view?usp=share_link
-
after
https://drive.google.com/uc?id={id}
(上記の{id}は共通です)
結果
エラーが解消され、画像が表示できました