본문 바로가기
IT이야기

[Flutter] SharedPreferences.getInstance(); null 에러 발생

by 너머스고(numusgo) 2024. 1. 28.

안드로이드 공부를 하면서 Flutter를 처음 접하게 되었다.

 

스파르타 홈페이지에서 강의를 하면서 처음 접하게 된 것이 메모장 만드는 것이었다.

 

이때만 해도 당연히 동영상 및 멘터가 있으니 그대로 따라 하면서 만들었으니 잘 만들어졌다.

 

하지만 구글 플레이에 등록을 하고 5~6개월이 지나서 구글에서 API 올리라는 메시지를 받았다.

 

이게 뭔가 싶어 찾아보니 버전을 올려서 다시 올리면 된다 하여 하였으나....

 

역시나 버전이 올라가면서 다른 게 발생하였다..... 며칠간을 삽질하다가 다른 곳에서 찾아낸 것이다..ㅜ.ㅜ

 

 

이전 버전에서(api29 이하)는 await SharedPreferences.getInstance();  선언하면 에러가 발생 안 하였으나

 

api33으로 업그레이드하면 null 발생하면서 어플이 강제 kill 된다.

 

며칠의 삽삽사삽 질 이후 어디에서간 찾았다.ㅜ.ㅜ 다른 분들도 삽질 금지

 

에러메시지

 flutter has exited unexpectedly: "Null check operator used on a null value"
수정 전
void main() async {
//  prefs = await SharedPreferences.getInstance(); 

  runApp(
    MultiProvider(
      providers: [
        ChangeNotifierProvider(create: (context) => MemoService()),
      ],
      child: const MyApp(),
    ),
  );
}

수정 후
void main() async {
  WidgetsFlutterBinding.ensureInitialized(); // 먼저선행햐야 null 에러 발생 안함
  prefs = await SharedPreferences.getInstance();


  runApp(
    MultiProvider(
      providers: [
        ChangeNotifierProvider(create: (context) => MemoService()),
      ],
      child: const MyApp(),
    ),
  );
}