묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[Python 초보] Flutter로 만드는 ChatGPT 음성번역앱
음성인식 하는 마이크 시간이 짧은거 같아요
안녕하세요!섹션 7 Flutter음성대화 마지막 부분인 최종 테스트를 진행하고 있습니다음성인식이 가능은 합니다하지만 인식하는 시간이 짧아 긴 문장은 인식 못하는거 같습니다!!더 긴 문장을 말하고 싶은데 제가 말하는 음성인식 시간을 더 길게 할 수 있는 방법이 있을까요?? 제 코드 입니다오류나는 문제는 없습니다!!import 'package:dash_chat_2/dash_chat_2.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; // 통신을 할수있는 패키지 import 'dart:convert'; //파싱을 위한 import 'package:speech_to_text/speech_to_text.dart'; //stt 패키지 import 'package:speech_to_text/speech_recognition_result.dart'; //음성을 인식하는 import 'package:flutter_tts/flutter_tts.dart'; // class BasicScreen extends StatefulWidget { @override _BasicState createState() => _BasicState(); } class _BasicState extends State<BasicScreen> { bool isListening = false; // 기본 false SpeechToText _speechToText = SpeechToText();//SpeechToText 인스턴스(?) 생성 bool _speechEnabled = false; //음성인식이 가능한지 아닌지 상태 오류가 나면 인식이 나기 떄문에 사용 안함 isListening로 어느정도 대체 가능 String _lastWords = ''; //인식한 문장이 저장될 lastWords FlutterTts flutterTts = FlutterTts();//TTS 인스턴스(?) 생성 @override void initState() { //음성인식부분을 초기화 하는 코드 super.initState(); _initSpeech(); flutterTts.setLanguage("ko-KR");//인스턴스 언어 flutterTts.setSpeechRate(1.0);// 읽어주는 속도 } ChatUser user1 = ChatUser( id: '1', //우리 firstName: 'me', lastName: 'me', ); ChatUser user2 = ChatUser( id: '2', //chatgpt firstName: 'chatGPT', lastName: 'openAI', profileImage: "assets/img/gpt_icon.png" ); late List<ChatMessage> messages = <ChatMessage>[ //List<ChatMessage> = 채팅 메세지를 리스트 형태로 보관하는 ChatMessage( text: '반갑습니다. 어서오세요. 무엇을 도와드릴까요?', //보여지는 텍스트 user: user2, //누가 얘기하는지 user 설정 createdAt: DateTime.now(), //현재 대화가 발생한 날짜,시간 ), ]; @override Widget build(BuildContext context) { // 화면에 메세지를 보여주는 부분 return Scaffold( //Scaffold라는 형식으로 앱 구성을 묶어준것 appBar: AppBar( //AppBar는 타이틀 부분 title: const Text('Basic example'), ), body: DashChat( // DashChat패키지를 이용한 고유 클래스 / DashChat 정의를 해줌 currentUser: user1, //currentUser = 채팅을 입력하는 사람은 누구 onSend: (ChatMessage m) { setState(() {// setState = 현재 화면의 상황을 업데이트 해준다라고 이해하며 됨 messages.insert(0, m); //messages.insert = 메세지 전송 현재 사용자가 입력한 텍스트를 대화창으로 보내는 역할 ,리스트가 추가되는 거죠 }); Future<String> data = sendMessageToServer(m.text); //입력한 메세지를 받아서 서버에 전송을 해주고 data.then((value){ //결과값을 비동기(?) 형태로 받아와서 user2(chatgpt)가 발화(이야기)하고 통신 결과값을 출력하는 setState(() { messages.insert(0, ChatMessage( text: value, user: user2, createdAt: DateTime.now() )); }); }); }, messages: messages, inputOptions: InputOptions( leading: [ IconButton( icon: Icon(Icons.mic, color: isListening? Colors.red: Colors.black), //음성을 듣고있는 상태면 버튼누름 빨강 / 아니면 기본 검정 onPressed: (){ //아이콘이 눌러진다면 setState(() { //상태를 바꿔줘 isListening = !isListening; // 리스닝이 아닌 상태에 검정이 리스닝 상태인 빨강으로 바뀌는 처리 if (isListening == true){// 음성입력 대기 상태가 되면 print('음성인식 시작'); //폴스였다 트루가 되면 _startListening(); }else{ print('음성인식 끝'); // 트루였다가 풀스 _stopListening(); } }); }, ) ] ), ), ); } //통신을 할 수 있는 코드 = postman에서 테스트를 하면서 코드를 얻은것임,약갼의 수정을 해준것뿐 //json의 어떤 부분을 가져와야하는지 전체를 뿌릴순 없으니 추출하는 부분만 추가한것임 Future<String> sendMessageToServer(String messages) async{ var headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer sk-UGIfeFKyAXIhwIXdM3uf96g176CRFnw5AnHJ2acSpyT3BlbkFJmhIKdmcjh56e01G0Axc5xF9scspNoz_MsXuZPUGW8A', }; var request = http.Request('POST', Uri.parse('https://api.openai.com/v1/chat/completions')); request.body = json.encode({ "model": "gpt-4o-mini", "messages": [ { "role": "user", "content": messages, } ] }); request.headers.addAll(headers); http.StreamedResponse response = await request.send(); if (response.statusCode == 200) { String responseString = await response.stream.bytesToString();//json 문자열들이 string 변수에 저장이 된다 Map<String, dynamic> jsonResponse = json.decode(responseString);//responseString을 json 구조에 맞게 변환을 시킨게 jsonResponse가 된다 -> json 구조대로 입맞에 맞게 값을을 골라올수있음 String result = jsonResponse['choices'] != null? jsonResponse['choices'][0]['message']['content']: "No result found"; print(responseString); // 전체 내용 출력, 터미널 화면에서만 출력이 됨 실제 앱에서 출력되지 않음 그래서 return "ERROR"; 을 가지고있어야함 //message = 결과값 부분만 추출 , result라는 String에 저장 // 'choices' 조건문 return result; //함수를 호출한곳에서 사용을 할 수 있다 //print(await response.stream.bytesToString()); //await response.stream.bytesToString() = 실제 결과값 } else { print(response.reasonPhrase); return "ERROR"; // 오류가 날 경우 화면에서도 오류가 난걸 확인할 수 있게 해줌 } } /// This has to happen only once per app void _initSpeech() async { //초기화 하는 함수 , 마이크 같은 디바이스를 사용하기 떄문에 필요 print("음성인식 기능을 시작합니다."); _speechEnabled = await _speechToText.initialize(); //setState(() {}); } /// Each time to start a speech recognition session void _startListening() async { // start를 하게 되면 _onSpeechResult 부분을 동작을 시킴 print("음성인식을 시작합니다."); await _speechToText.listen(onResult: _onSpeechResult); //setState(() {}); } /// Manually stop the active speech recognition session /// Note that there are also timeouts that each platform enforces /// and the SpeechToText plugin supports setting timeouts on the /// listen method. void _stopListening() async { // 음성 인식 중지 print("음성인식을 종료합니다."); await _speechToText.stop(); //setState(() {}); } /// This is the callback that the SpeechToText plugin calls when /// the platform returns recognized words. void _onSpeechResult(SpeechRecognitionResult result) { _lastWords = ""; //초기화 시킴 , 입력을 받을떄마다 새롭게 리셋해야하기 떄문에 추가 if(result.finalResult){ //최종인식 _lastWords = result.recognizedWords; //result에 recognizedWords를 _lastWords에 넣어줘 print("최종 인식된 문장: $_lastWords"); //flutter 에서는 변수를 텍스트 안에 넣어줄때 $를 넣고 일반 텍스트문자영하고 변수가 가티 출력됨 / 최종 인식된 음성을 텍스트로 바꿔서 _lastWords 넣어줘 setState(() { //messages 리스트에 인식한 내용을 추가해줘. messages.insert(0, ChatMessage( text: _lastWords, user: user1, createdAt: DateTime.now() )); }); Future<String> data = sendMessageToServer(_lastWords); //입력한 메세지를 받아서 서버에 전송을 해주고 data.then((value){ //결과값을 비동기(?) 형태로 받아와서 user2(chatgpt)가 발화(이야기)하고 통신 결과값을 출력하는 setState(() { messages.insert(0, ChatMessage( text: value, user: user2, createdAt: DateTime.now() )); }); flutterTts.speak(value); // value를 바로 읽어줌 }); } } }
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
이 부분에서 Error: The argument type 'RestaurantDetailModel' can't be assigned to the parameter type 'RestaurantModel'.
import 'dart:convert'; import 'dart:async'; import 'package:colorfactor/common/const/data.dart'; import 'package:colorfactor/common/layout/default_layout.dart'; import 'package:colorfactor/product/component/product_card.dart'; import 'package:colorfactor/restaurant//component/RestaurantCard.dart'; import 'package:colorfactor/restaurant/model/restaurant_detail_model.dart'; import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; class RestaurantDetailScreen extends StatelessWidget { final String id; const RestaurantDetailScreen({super.key, required this.id}); Future<Map<String, dynamic>> getRestaurantDetail() async { final dio = Dio(); final accessToken = await storage.read(key: ACCESS_TOKEN_KEY); final resp = await dio.get('http://$ip/restaurant/$id', options: Options( headers: { 'authorization': 'Bearer $accessToken' }, ), ); return resp.data; } @override Widget build(BuildContext context) { return DefaultLayout( title: '불타는 덕볶이', child: FutureBuilder<Map<String, dynamic>>( future: getRestaurantDetail(), builder: (_, AsyncSnapshot<Map<String, dynamic>> snapshot) { print(snapshot.data); if (!snapshot.hasData) { return Container(); } final item = RestaurantDetailModel.fromJson( json: snapshot.data!, ); return CustomScrollView( slivers: [ renderTop( model: item, ), renderLabel(), renderProducts(), ], ); } ), ); } SliverPadding renderLabel() { return SliverPadding( padding: EdgeInsets.symmetric(horizontal: 16), sliver: SliverToBoxAdapter( child: Text( '메뉴', style: TextStyle(fontSize: 18, fontWeight: FontWeight.w500),), ), ); } renderProducts() { return SliverPadding( padding: EdgeInsets.symmetric(horizontal: 16), sliver: SliverList( delegate: SliverChildBuilderDelegate((context, index) { return Padding( padding: const EdgeInsets.only(top: 16.0), child: ProductCard(), ); }, childCount: 10, ), ), ); } SliverToBoxAdapter renderTop({ required RestaurantDetailModel model, }) { return SliverToBoxAdapter( child: RestaurantCard.fromModel( model: model, isDetail: true, ), ); } }이 강의 진행에서 SliverToBoxAdapter renderTop({ required RestaurantDetailModel model, }) { return SliverToBoxAdapter( child: RestaurantCard.fromModel( model: model, isDetail: true, ), ); } }이 부분에서 Error: The argument type 'RestaurantDetailModel' can't be assigned to the parameter type 'RestaurantModel'.이 에러가 뜹니다. 구조를 다시 따라가서 봐도 문제가 없는것 같은데, 아직 이해도가 낮아서 그런지 Detail모델이 왜 Model에 대입되는지가 이해가 안됩니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
resp.data; 에러
import 'dart:convert'; import 'dart:async'; import 'package:colorfactor/common/const/data.dart'; import 'package:colorfactor/common/layout/default_layout.dart'; import 'package:colorfactor/product/component/product_card.dart'; import 'package:colorfactor/restaurant//component/CourtCard.dart'; import 'package:colorfactor/restaurant/model/restaurant_detail_model.dart'; import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; class RestaurantDetailScreen extends StatelessWidget { final String id; const RestaurantDetailScreen({super.key, required this.id}); Future<Map<String, dynamic>> getRestaurantDetail() async { final dio = Dio(); final accessToken = await storage.read(key: ACCESS_TOKEN_KEY); final resp = dio.get('http://$ip/restaurant/$id', options: Options( headers: { 'authorization' : 'Bearer $accessToken' }, ), ); return resp.data; } @override Widget build(BuildContext context) { return DefaultLayout( title: '불타는 덕볶이', child: FutureBuilder<Map<String, dynamic>>( future: getRestaurantDetail(), builder: (_, AsyncSnapshot<Map<String, dynamic>> snapshot){ print(snapshot.data); if(!snapshot.hasData){ return Container(); } final item = RestaurantDetailModel.fromJson( json: snapshot.data!, ); return CustomScrollView( slivers: [ renderTop(), renderLabel(), renderProducts(), ], ); } ), ); } SliverPadding renderLabel(){ return SliverPadding( padding: EdgeInsets.symmetric(horizontal: 16), sliver: SliverToBoxAdapter( child: Text('메뉴', style: TextStyle(fontSize: 18, fontWeight: FontWeight.w500),), ), ); } renderProducts(){ return SliverPadding( padding: EdgeInsets.symmetric(horizontal: 16), sliver: SliverList( delegate: SliverChildBuilderDelegate((context, index){ return Padding( padding: const EdgeInsets.only(top: 16.0), child: ProductCard(), ); }, childCount: 10, ), ), ); } SliverToBoxAdapter renderTop(){ return SliverToBoxAdapter( child: RestaurantCard( image: Image.asset('asset/img/2.jpg'), name: '불떡', tags: ['떡복이','맛다','치즈'], ratings: 4.5, ratingsCount: 100, distanceRange: 10, courtFee: 4000, isDetail: true, detail: '맛있는 떡복이', ), ); } }return resp.data; 부분에서 아래와 같이Error: The getter 'data' isn't defined for the class 'Future<Response<dynamic>>'.계속 에러를 반환하는데 도무지 이유를 모르겠습니다.
-
해결됨Flutter 앱 개발 실전
디자인 시스템 관련해서 문의드립니다.
안녕하세요 선생님,저번에 카톡으로 질문 드렸었던 플러터하고 싶은 1인입니다! 아, 그리고 선생님 강의 댓글 1등 당첨되서 키보드도 받았네요 ㅋㅋㅋ 🙂 저는 현재, 앱을 처음부터 차근차근 선생님 스타일로 만들어 보고자 합니다.Material3에서 색상을 넣으니, LightSchem, DarkScheme해서 엄청 많이 나오더라구요.. 근데 선생님이 만드신 것 처럼, Palette나 다른 칼라 속성들 처럼 만들고 싶은데, 혹시나 material3 후에, 선생님이 일부 필요한 것들만 빼놓은걸까요? 1)혹시나 선생님이 만드실 때, grey100, 뒤에 숫자처럼 만드실 때 규칙이 있으실까요?2) 또한, dark_theme, light_theme도 설정할 때, Material3 주소에서, dart 파일을 다운 받았을 때, 색상 정하는 규칙도 궁금합니다. 어떤 식으로 처리하신걸까요? 감사드립니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
토큰 체크 MaterialPageRoute String
void checkToken() async { final refreshToken = await storage.read(key: REFRESH_TOKEN_KEY); final accessToken = await storage.read(key: ACCESS_TOKEN_KEY); if (refreshToken == null || accessToken == null) { Navigator.of(context).pushNamedAndRemoveUntil( MaterialPageRoute( builder: (_) => LoginScreen() ), (route)=> false, ); }else{ Navigator.of(context).pushNamedAndRemoveUntil( MaterialPageRoute( builder: (_) => RootTab() ), (route)=> false, ); } }강의와 동일하게 작성한 해당 코드에서 아래와 같은 오류가 생성됩니다.MaterialPageRoute<dynamic>' can't be assigned to the parameter type 'String'.
-
해결됨Flutter 앱 개발 기초
애뮬레이터 문제인지 뭐가문제인지 모르겠어요
Failed to launch Medium Phone API 35: Error: Emulator didn't connect within 60 seconds 라고 에러가 뜨고디버깅도 안되고해서 질문올려봅니다
-
미해결
Xcodebuild error 관련해서 질문드립니다!
xcode simulator ios18버전으로 업데이트 후 시뮬레이터 자체 실행에는 문제가 없는데 flutter를 실행하면다음과 같은 에러가 발생합니다. 그래서 stackoverflow를 참고하여post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) target.build_configurations.each do |build_configuration| build_configuration.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64 i386' end end end이 코드를 podfile에 추가하였으나 오류가 해결되지 않았습니다.. 이 에러를 어떻게 해결해야하나요?
-
미해결Flutter로 SNS 앱 만들기
6게시글등록화면_5Firebase Storage에 게시글 이미지 저장1인가요
String feedId = Uuid().v1(); // firestore 문서참조 DocumentReference<Map<String, dynamic>> feedDocRef = firebaseFirestore.collection('feeds').doc(feedId); // storage 참조 Reference ref = firebaseStorage.ref().child('feeds').child(feedId); 여기나오는 것들이 ('feeds').폴더 와 doc(feedId) 폴더개념인가요.
-
해결됨[Python 초보] Flutter로 만드는 ChatGPT 음성번역앱
음성 통신 테스트 안됨
음성 통신 테스트를 할때녹음을 못하는것 같습니다어떻게 해결해야하나요...?python test_total_mic.py 하면 밑에처럼 뜹니다.... 마이크 설정은 부록을 보고 켜져있는것을 확인했습니다,,,, 녹음을 시작합니다!녹음을 종료합니다.Error in sys.excepthook:Original exception was: 제가 친 코드 입니다from openai import OpenAI from pathlib import Path import sounddevice as sd from scipy.io.wavfile import write from playsound import playsoundclient = OpenAI() def record_audio(): #비트레이트 fs = 44100 seconds = 3 # 음성의 길이 print('녹음을 시작합니다!') record = sd.rec(int(seconds*fs), samplerate=fs, channels=2) sd.wait() #대기 print('녹음을 종료합니다.') audio_input_path = "audio_input.wav" write(audio_input_path,fs,record) return audio_input_pathdef conn_whisper(audio_input_path): audio_file= open(audio_input_path, "rb") transcription = client.audio.transcriptions.create( model="whisper-1", file=audio_file ) print(transcription.text) text_input = transcription.text return text_inputdef conn_chatgpt(text_input): completion = client.chat.completions.create( model="gpt-4o-mini", messages=[ {"role": "user","content": text_input} ] ) print(completion.choices[0].message.content) text_output = completion.choices[0].message.content return text_outputdef conn_tts(text_output): speech_file_path = Path(__file__).parent / "audio_output.mp3" response = client.audio.speech.create( model="tts-1", voice="alloy", input=text_output ) response.stream_to_file(speech_file_path) audio_output_path = str(speech_file_path) return audio_output_pathdef main(): #마이크 input => audio_intput_path audio_input_path = record_audio() audio_input = open(audio_input_path,"rb") text_input = conn_whisper(audio_input) text_output = conn_chatgpt(text_input) audio_output_path = conn_tts(text_output) playsound(audio_output_path) returnmain()
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
data 변수명에 대해
안녕하세요.flutter 중급 강의를 들으면서 궁금한 점이 생겨서 질문 드립니다.지금까지 수많은 변수명들을 작성해 왔는데요.그중에서 data라는 변수명들이이 클래스마다 여러곳에 배치되어 있는 느낌을 받았습니다. 그래서 헷갈려하지 않기 위해 앞의 약자를 덧붙여 자신만의 변수명을 만들어 왔습니다. ex) final List<T> data; --> final List<T> cpData;하지만 [pagination params추가하기] 강의를 듣는 도중에 테스트를 해보니E/flutter (21276): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: type 'Null' is not a subtype of type 'List<dynamic>' in type cast오류가 발생하였고 혹시 몰라서 data를 원래대로 되돌리고 실행해 보았는데 정상적으로 작동하였습니다.변수명을 바꿀뿐이였는데 타입을 NULL로 인식하는 이유가 궁금합니다.(콘솔창에 flutter pub run build_runner watch 실행중이였습니다.)
-
해결됨[Python 초보] Flutter로 만드는 ChatGPT 음성번역앱
chatgpt api 연결안되는거 같아요
섹션 3에서 chatgpt api 연결이 안되는거 같아요 python test_chatgpt.py 를 하면 선생님처럼 되지 않고 이런 오류가 뜹니다.해결 부탁드립니다...(desktop_venv) C:\desktop>python test_chatgpt.py Traceback (most recent call last): File "C:\desktop\test_chatgpt.py", line 4, in <module> completion = client.chat.completions.create( File "C:\desktop\desktop_venv\lib\site-packages\openai\_utils\_utils.py", line 274, in wrapper return func(*args, **kwargs) File "C:\desktop\desktop_venv\lib\site-packages\openai\resources\chat\completions.py", line 704, in create return self._post( File "C:\desktop\desktop_venv\lib\site-packages\openai\_base_client.py", line 1270, in post return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)) File "C:\desktop\desktop_venv\lib\site-packages\openai\_base_client.py", line 947, in request return self._request( File "C:\desktop\desktop_venv\lib\site-packages\openai\_base_client.py", line 1051, in _request raise self._make_status_error_from_response(err.response) from Noneopenai.AuthenticationError: Error code: 401 - {'error': {'message': 'Incorrect API key provided: sk-proj-********************************************************************************************************************************************************ndYA. You can find your API key at https://platform.openai.com/account/api-keys.', 'type': 'invalid_request_error', 'param': None, 'code': 'invalid_api_key'}}
-
미해결Flutter 초입문 왕초보편
dispose 오버라이드 메소드 자동완성이 안 됩니다.
dispose 오버라이드 메소드 자동완성이 안 됩니다. 다른 자동완성은 다 제대로 작동하는데 오버라이드 메소드 자동완성이 안되네요 gpt가 하라는대로 해봤는데도 안 됩니다 어떻게 해야 할까요? 저는 현재 플러터 가장 최신 버전을 사용하고 있습니다.
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Category Stat 데이터 로딩 문제
특정 종류만 무한 circularprogressindicator가 나옵니다. 아무리 뵈도 원인을 못찾겠는데 어떤게 이슈가 있을 수 있을까요?
-
해결됨Flutter 앱 개발 실전
수강기간 연장 문의
DevStory님 안녕하세요? 수강기간 연장 부탁드립니다.
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
해결이 안되는 에러 질문드려요.
final rawItemsList = response.data['response']['body']['items'] as List<Map<String, dynamic>>;해당 코드에서[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: type 'List<dynamic>' is not a subtype of type 'List<Map<String, dynamic>>' in type cast#0 StatRepository.fetchData (package:microdust_study/repository/stat_repository.dart:26:69)<asynchronous suspension>flutter: type 'List<dynamic>' is not a subtype of type 'List<Map<String, dynamic>>' in type cast이 에러가 계속 발생합니다....
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
List<Map<String, dynamic>> in type cast 에러가 계속 발생됩니다.
ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: type 'List<dynamic>' is not a subtype of type 'List<Map<String, dynamic>>' in type cast#0 StatRepository.fetchData (package:microdust_study/repository/stat_repository.dart:26:69)<asynchronous suspension>flutter: type 'List<dynamic>' is not a subtype of type 'List<Map<String, dynamic>>' in type cast 이 에러가 똑같이 100% 코딩을 해도 발생합니다.
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
무슨 에러인지 모르는 에러가 계속 발생됩니다.
ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: type 'List<dynamic>' is not a subtype of type 'List<Map<String, dynamic>>' in type cast#0 StatRepository.fetchData (package:microdust_study/repository/stat_repository.dart:26:69)<asynchronous suspension>flutter: type 'List<dynamic>' is not a subtype of type 'List<Map<String, dynamic>>' in type cast
-
해결됨Flutter로 SNS 앱 만들기
게시글등록화면_5Firebase Storage에 게시글 이미지 저장
이해가 잘 안돼서 다시 문의 드려요.동영상을 되풀이 해서 봐도 이해가 잘 안돼서요.String feedId = Uuid().v1();feedid는 고유한 아이디 부여하는거고, 아래요 feeds는 폴더인데 .doc(feedid)를 게시글의 feedid를 부여 하는겁니까 // firestore 문서참조DocumentReference<Map<String, dynamic>> feedDocRef =firebaseFirestore.collection('feeds').doc(feedId); 여기서 feedDocRef는 여기서 어느것을 말하는겁니까 잘 이해가 안돼서요.
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안드로이드 스튜디오 코드 하이라이팅하고 자동완성이 안됩니다.
안녕하세요. window 사용자인데 안드로이드 스튜디오에서 main.dart 코드 위젯 하이라이팅과 자동완성이 안됩니다. dart와 flutter plugin은 설치되어 있고 혹시 제가 놓친 또 다른 plugin이 있나요?
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
실행 오류
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.e: C:/Users/jhp99/.gradle/caches/transforms-3/431ce31617111116ed092b20fb775fda/transformed/jetified-kotlin-stdlib-1.9.0.jar!/META-INF/kotlin-stdlib-jdk7.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.9.0, expected version is 1.7.1.e: C:/Users/jhp99/.gradle/caches/transforms-3/431ce31617111116ed092b20fb775fda/transformed/jetified-kotlin-stdlib-1.9.0.jar!/META-INF/kotlin-stdlib-jdk8.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.9.0, expected version is 1.7.1.e: C:/Users/jhp99/.gradle/caches/transforms-3/431ce31617111116ed092b20fb775fda/transformed/jetified-kotlin-stdlib-1.9.0.jar!/META-INF/kotlin-stdlib.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.9.0, expected version is 1.7.1.e: C:/Users/jhp99/.gradle/caches/transforms-3/c321e7444a5c731da2398570d6ef04f1/transformed/jetified-kotlin-stdlib-common-1.9.0.jar!/META-INF/kotlin-stdlib-common.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.9.0, expected version is 1.7.1.FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:compileDebugKotlin'.> A failure occurred while executing org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction > Compilation error. See log for more details* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.* Get more help at https://help.gradle.orgBUILD FAILED in 2s┌─ Flutter Fix ──────────────────────────────────────────────────────────────────────────────┐│ [!] Your project requires a newer version of the Kotlin Gradle plugin. ││ Find the latest version on https://kotlinlang.org/docs/releases.html#release-details, then ││ update C:\Users\jhp99\AndroidStudioProjects\chool_check\android\build.gradle: ││ ext.kotlin_version = '<latest-version>' │└────────────────────────────────────────────────────────────────────────────────────────────┘Error: Gradle task assembleDebug failed with exit code 1이런 오류가 나는데 chat gpt도 돌려보고 구글링도 해봤지만 안고쳐지네요..ㅠㅠ