본문 바로가기
Language_/Flutter

[Flutter] Error "'package:flutter/src/painting/image_resolution.dart': Failed assertion: line 136 pos 15: 'assetName != null': is not true." 오류 해결 방법

by 낭람_ 2020. 10. 17.
반응형

'package:flutter/src/painting/image_resolution.dart':Failed assertion: line 136 pos 15: 'assetName != null': is not true.

 

의 오류 해결 방안이다 ..

 

이전의 코드를 보면

String _path;

...
...
...

_loadValue() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  setState(() {
    _path = (prefs.getString('path') ?? '');
  });
}

...
...
...

Widget build(BuildContext context) {
  return Scaffold(
    appBar: null,
    body: Center(
      child: CircleAvatar(
        radius: 32,
        backgroundColor: Colors.white,
        child: _path == ''
        ? CircleAvatar(
          radius: 30,
          backgroundImage: AssetImage('Images/user.png'),
          backgroundColor: Color(0xff191C2B),
        ),
        : CircleAvatar(
          radius: 30,
          backgroundImage: AssetImage(_path),
          backgroundColor: Color(0xff191C2B),
          ),
        ),
      )
  );
}

 

이렇게 구성 되어있었는데.. 아마 AssetIamge(_path)에서 오류가 난거 같다. 

 

분기문에서 저기로 안빠져도 _path에 '' 가 들어가 있어서 null이 아니라고 뜨는 오류인것 같다.

 

String _path;

...
...
...

_loadValue() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  setState(() {
    _path = (prefs.getString('path') ?? null);  // null로 수정
  });
}

...
...
...

Widget build(BuildContext context) {
  return Scaffold(
    appBar: null,
    body: Center(
      child: CircleAvatar(
        radius: 32,
        backgroundColor: Colors.white,
        child: _path == null                  // null로 수정
        ? CircleAvatar(
          radius: 30,
          backgroundImage: AssetImage('Images/user.png'),
          backgroundColor: Color(0xff191C2B),
        ),
        : CircleAvatar(
          radius: 30,
          backgroundImage: AssetImage(_path),
          backgroundColor: Color(0xff191C2B),
          ),
        ),
      )
  );
}

 

위와 같이 '' 부분을 null로 수정하면 오류가 보이지 않을 것이다.

반응형

댓글