본문 바로가기
프로그래밍/Xcode-iOS

(Xcode): No file or variants found for asset: 오류 대응 방법

by Mr-후 2023. 7. 20.
반응형

몇일동안 본 책 내용을 따라해보기 위해 Visual Studio Code를 가지고 플러터 익히는 도중,

프로젝트 디렉토리에 이미지를 보여주기 위한 assets설정을 하다 빡 돌았다.

책에서 하라는대로 했다. 안된다. 

짜증난다. @@

폭풍 검색을 했다. 검색 결과와 같이 했다. 그래도 안된다.

아씨! 왜 안되는거지? 뭐지? 

이래서 Xcode가 편한건가? 짜증이 난다. @@ 

별별짓 다 하다 해결한 내용을 정리해 두고자 한다. 

우선, 책의 SDK버전과 내가 사용하는 SDK버전이 서로 다르다. 

책의 예제 소스 yaml파일

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시간을 까먹고, 해결했다! 

이 맛이지!!!

 

반응형