본문 바로가기
프로그램 개발해서 돈벌기/flutter

[flutter] A value of type 'Null' can't be returned from the method '_takePicture' because it has a return type of 'Future<String>' 에러 발생

by ubmuhan 2023. 5. 2.
반응형

이 오류는 _takePicture 메서드가 Future<String> 타입을 반환하지만, Null 값이 반환되는 가능성이 있기 때문에 발생합니다.

해결 방법으로는 다음과 같은 것들이 있습니다:

 

  1. _takePicture 메서드가 항상 Future<String>을 반환하도록 코드를 수정합니다. 이렇게 하려면 return 문이 필요합니다. Null 값이 반환되는 경우 대신 예외를 throw하여 오류를 방지할 수 있습니다.
  2. _takePicture 메서드가 Future<String?>을 반환하도록 코드를 수정합니다. 이렇게 하면 Null 값이 반환되는 것이 유효한 옵션이 됩니다.
  3. Future<String> 타입을 반환하도록 코드를 수정합니다. 이렇게 하면 String 또는 Null 값을 반환할 수 있습니다. 하지만 이 경우에는 메서드의 반환 값을 검사하는 코드를 수정해야 합니다.

예를 들어, 아래와 같이 코드를 수정할 수 있습니다:

 

Future<String> _takePicture() async {
  final image = await _controller.takePicture();
  if (image == null) {
    throw Exception("Failed to take picture");
  }
  return image.path;
}
 

 

또는

 

Future<String?> _takePicture() async {
  final image = await _controller.takePicture();
  return image?.path;
}

 

이렇게 하면 _takePicture 메서드에서 Null 값이 반환되는 것을 방지할 수 있습니다.

 

 

반응형

댓글