몇일동안 본 책 내용을 따라해보기 위해 Visual Studio Code를 가지고 플러터 익히는 도중,
프로젝트 디렉토리에 이미지를 보여주기 위한 assets설정을 하다 빡 돌았다.
책에서 하라는대로 했다. 안된다.
짜증난다. @@
폭풍 검색을 했다. 검색 결과와 같이 했다. 그래도 안된다.
아씨! 왜 안되는거지? 뭐지?
이래서 Xcode가 편한건가? 짜증이 난다. @@
별별짓 다 하다 해결한 내용을 정리해 두고자 한다.
우선, 책의 SDK버전과 내가 사용하는 SDK버전이 서로 다르다.
environment:
sdk: ">=2.0.0-dev.68.0 <3.0.0"
과 같이 정의 되었을 때는
assets:
- flutter_~ 어쩌구 해서 하면 된 모양이지만 난 그렇지 못했다는 사실이다.
나의 프로젝트 환경정보는 다음과 같다.
environment:
sdk: '>=3.0.6 <4.0.0'
결론부터 말하자면
assets경로를 잡을 때 lib/폴더부터 경로를 잡고, 들어가야 한다는 내용이다.
여기서 또 중요한 것은 띄어쓰기 역시 중요하다.
flutter:
uses-material-design: true
assets:
- lib/images/
flutter 밑에서부터 띄어쓰기 2칸,
assets: 밑에서 띄어쓰기 4칸
@@
뭔 플랫폼이 이래 ㅋㅋㅋ
띄어쓰기 잘못하거나, 경로 잘못 작성하고 실행하면 다음과 같은 오류를 마주할 수 있다.
Image.asset(
'lib/images/logo.png',
width: 100.0,
),
프로젝트의 시작이 lib폴더부터 이므로 이미지 경로를 적어줄때 'lib/images/' 로 적어줘야 한다는.. @@
대박 !!
아니, assets에서 lib/images/로 지정을 했으면 그 하위 이미지들은 이미지명만 바로 쓰도 되는거 아닌가?
아직 내가 플러터 초보라 그런가? ㅋㅋ
══╡ EXCEPTION CAUGHT BY IMAGE RESOURCE SERVICE ╞════════════════════════════════════════════════════
The following assertion was thrown resolving an image codec:
Unable to load asset: "images/logo.png".
Exception: Asset not found
When the exception was thrown, this was the stack:
#0 PlatformAssetBundle.loadBuffer (package:flutter/src/services/asset_bundle.dart:369:7)
<asynchronous suspension>
#1 AssetBundleImageProvider._loadAsync (package:flutter/src/painting/image_provider.dart:811:18)
<asynchronous suspension>
Image provider: AssetImage(bundle: null, name: "images/logo.png")
Image key: AssetBundleImageKey(bundle: PlatformAssetBundle#efbe0(), name: "images/logo.png", scale:
1.0)
하여 장장 2시간을 까먹고, 해결했다!
이 맛이지!!!
'프로그래밍 > Xcode-iOS' 카테고리의 다른 글
Xcode14.3.1 Command PhaseScriptExecution failed with a nonzero exit code 오류 해결 방법 (0) | 2023.06.19 |
---|---|
Xcode Unable to install Error 대응 (0) | 2022.07.01 |
iOS TestFlight 수출규정 관련 문서가 누락됨. (0) | 2022.06.14 |
ITMS-90535: Unexpected CFBundleExecuteable Key Error (0) | 2022.06.07 |
ERROR: Failed to build gem native extension. For macbook 카타리나 (2) | 2020.11.16 |