이미지 추가 버튼 누를 시 앱이 팅깁니다.
923
작성한 질문수 4
안녕하세요.
아래의 코드를 적용한 뒤 이미지 추가 버튼을 클릭하면 앱이 아예 꺼집니다.
//ImagePicker
final ImagePicker _picker = ImagePicker();
File? _imageFile; //갤러리 연동을 위해 사용
Future<void> _getImage() async {
//ImagePiker
var image = await _picker.pickImage(source: ImageSource.gallery);
setState(() {
_imageFile = File(image!.path);
});
}
}
sdk 2.12, imagePicker 패키지는 0.8.4 버전이고 연결이 끊겼다는것 외에는 다른 오류는 출력되지 않습니다.
create_page.dart의 전체 코드입니다.
import 'dart:io';
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart'; //갤러리 또는 카메라 연동하는 패키지
class createPage extends StatefulWidget {
const createPage({Key? key}) : super(key: key);
@override
_createPageState createState() => _createPageState();
}
class _createPageState extends State<createPage> {
//입력창을 위한 객체 생성
final TextEditingController createText = TextEditingController();
//ImagePicker
final ImagePicker _picker = ImagePicker();
File? _imageFile; //갤러리 연동을 위해 사용
//dispose : 객체가 해제될 때 (더 이상 사용되지 않을때) 그 객체에 있던 메모리를 삭제, 자원 관리를 위해 사용
//_createPageState가 제거될 때 호출됨
@override
void dispose() {
// TODO: implement dispose
createText.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: _buildAppbar(),
body: _buildBody(), //메소드 생성해서 정의
floatingActionButton: FloatingActionButton(
//갤러리에서 이미지 가져오기 (image_picker 패키지 사용)
onPressed: _getImage,
backgroundColor: Colors.blue,
child: Icon(Icons.add_a_photo),
),
);
}
_buildAppbar() {
return AppBar(
//앱바 오른쪽에 아이콘 생성
actions: [
Icon(Icons.send),
],
);
}
_buildBody() {
return SingleChildScrollView( //스크롤 추가
child: Column(
children: [
//이미지 출력 부분
//이미지가 선택되지 않았을 때(null)는 텍스트 출력, 선택되었다면 선택된 이미지를 출력
_imageFile == null ? Text("No Image") : Image.file(_imageFile!),
//입력창 생성
TextField(
controller: createText,
//텍스트필드의 스타일 설정
decoration: InputDecoration(
hintText: "내용을 입력하세요", //기본값
),
)
],
),
);
}
//갤러리 연동
//이미지를 File로 만들어 줘야하기 때문에 비동기 처리 방식 사용?
Future<void> _getImage() async {
//ImagePiker
var image = await _picker.pickImage(source: ImageSource.gallery);
setState(() {
_imageFile = File(image!.path);
});
}
}
_getImage 메소드의 문제일까요?
감사합니다.
답변 3
1
iOS 디바이스에서의 카메라 접근 권한 설정이 필요하기 때문입니다.
아마도 iOS에서 앱 접근권한을 엄격하게 하는 정책이 얼마 전에 추가되었기 때문인 것으로 보이네요.
ios/Runner/Info.plist 에 다음 내용을 추가합니다.
<key>NSCameraUsageDescription</key>
<string>Used to demonstrate image picker plugin</string>
<key>NSMicrophoneUsageDescription</key>
<string>Used to capture audio for image picker plugin</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Used to demonstrate image picker plugin</string>
그러면 정상적으로 진행 가능합니다.
해당 내용은 다음 주소에서 확인하였습니다.
https://minwook-shin.github.io/flutter-use-image-picker/
0
이미지 추가 버튼을 누르면 바로 튕기고 Debug에서는 아래 한 줄만 출력됩니다
Lost connection to device.
0
디버깅 중에 무슨 이유에선가 연결이 해제된 것 같습니다.
Lost connection to device 가 표시되면 디버깅이나 원인 파악이 어렵습니다.
PC 재부팅 등을 해 보셔서 로그가 나오도록 해야 합니다.
과거 ai없을때 듣고 다시 듣는 중인데
1
68
1
40번 수업이 완료가 되지 않아요.
0
73
1
최신버전 firebase_ui_auth 할때 EmailAuthProvider 오류 잡는 방법
0
170
1
애뮬레이터로 main.dart를 실행하면 컴퓨터가 멈춥니다.
0
352
2
혹시 재촬영 계획이 있으신가요?
0
260
1
애뮬레이터 Intel HAXM 다운로드가 안돼요
0
570
2
에뮬레이터 홈화면
0
265
1
종속성 충돌 질문
0
352
1
plugin 중에서 에러 발생시 발생한 코드 위치에 바로 에러 표시해주는 기능 있을까요?
0
430
1
firebase option 오류
0
381
2
alt+enter 가 맥북에서는 option enter로 알고 있는데 단축키가 먹히지 않습니다 ㅜㅜ
0
1494
11
파이어베이스 연결시 갑자기 다른 오류가 발생했어요 ㅠㅠ
0
414
1
Failed assertion: line 246 pos 15: 'items.length >= 2': is not true.
0
1330
1
Firebase로 이메일 로그인 기능 구현
0
365
1
GridView에 데이터가 표시가 안됩니다.
0
302
1
The Android Gradle plugin supports only Kotlin Gradle plugin version 1.5.20 and higher. 해결법을 모르겠습니다
0
6925
4
안드로이드 에뮬레이터 실행오류
1
1024
1
firebase 연동 중 오류 질문
0
483
1
05. AccountPage UI 작성강의 설명문의
0
380
1
firestore에서 List<String>을 받아오고 싶을 때
0
551
1
firebase 이메일 로그인 설정 관련 오류 문의의 건
0
1102
1
기본위젯
0
2736
1
firebase에 upload 에러가 발생했습니다
0
1291
3
디버그 서명 인증서 SHA-1가 구해지지 않습니다.
1
328
1





