17일차 과제 링크 👉 17일차 과제
페이지 권한 리스트
Android
https://developer.android.com/reference/android/Manifest.permission
info.plist
<key>NSPhotoLibraryUsageDescription</key>
<string>This app requires Photo Library Permission</string>
<key>NSCameraUsageDescription</key>
<string>This app requires NSCameraUsageDescription</string>
<key>NSMicrophoneUsageDescription</key>
<string>This app requires Photo NSMicrophoneUsageDescription</string>
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
XFile? selectedImage;
Widget build(BuildContext context) {
var imagePicker = ImagePicker();
return MaterialApp(
home: Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
// Image.asset
if(selectedImage != null) Image.file(File(selectedImage!.path)),
TextButton(
onPressed: () async {
var image = await imagePicker.pickImage(source: ImageSource.gallery);
if(image != null) {
print('이미지를 선택햇군');
selectedImage = image;
setState(() {});
} else {
print('선택하라고햇지');
}
},
child: Text('이미지 선택하세요'),
)
],
),
),
),
);
}
}
One or more plugins require a higher Android SDK version.
원인
One or more plugins require a higher Android SDK version.
Fix this issue by adding the following to C:\...\프로젝트명\android\app\build.gradle:
android {
compileSdkVersion 33
...
}
해결
android > app > build.gradle 파일에 compileSdkVersion 수정
android {
compileSdkVersion 33
Unable to load asset
AssetImage
는 앱 번들 내부의 이미지 리소스를 로드하기 위해 사용되는데, XFile
은 파일 시스템에서 이미지를 가져옴AssetImage
을 사용하여 XFile
경로를 로드하면 오류가 발생함FileImage
은 파일 시스템에서 이미지를 로드하기 위해 사용됨
XFile
경로를 File
객체로 변환한 후 FileImage
를 사용하여 이미지를 로드할 수 있음
Image.file(File(selectedImage!.path))
자꾸 콘솔창이 피로 물들어버린다...
분명 내 코드에는 문제가 없다고 생각했는데 알고 보면 다 내 문제임
시뻘건 에러들 그만 보고 싶다
열심히 공부해야지.......