Flutter 11

[Flutter] Window 빌드 하는 방법

기존의 AOS, IOS 프로젝트를 Window로 빌드하는 방법이다. 1. Visual studio 2022 설치 2. c++ 데스크톱, 모바일 개발 설치 *만약 설치를 하지 못했다면 여기서 C++ 개발을 다운받아준다. 3. 명령 프롬프트에서 winget install Microsoft.NuGet 실행(https://stackoverflow.com/questions/71734042/flutter-windows-build-nuget-is-not-installed ) 사용약관 동의에 Y 해준다. 4. flutter clean flutter pub get 5. flutter create --platforms=windows,macos,linux . 입력 6. Windows(desktop)으로 빌드하기 ///안될 ..

Flutter 2024.01.15

[Flutter] Json 데이터 받아올 시 DateFormat 불가 오류 해결

String 형태인 Json 데이터를 받아왔는데 분명 날짜와 시간이 정확한데 Invalid date format이라며 DateFormat이 불가했다. Invalid date format 20230308T093800 이런식으로 정확한데 변환이 되지 않았다. 혹시 뒤에 공백이 있나 싶어 Trim()과 substring 모두 사용해 봤지만 작동되지 않았다. 해당 Json 데이터를 자세하게 보기 위해 로그를 찍어봤더니 Time의 구조가 "100000\u0000\u0000\u0000\u0000"와 같이 나와있었다. 찾아보니 \u0000은 유니코드 공백, Null이라고 한다. json['time'].replaceAll('\u0000', '') 와 같이 \u0000을 replace하여 해결하였다.

Flutter 2023.03.08

[Flutter] Getx, Modal Bottom Sheet, This Obx widget cannot be marked as needing to build beacause the framework is already in the process of building widgets 오류 해결

Obx로 감싸진 버튼을 클릭하면 함수로 Modal Bottom Sheet를 불러오는데 한 번 클릭 했을 때는 문제가 없었는데 두 번 째 클릭했을 때는 해당 오류가 떴다. Obx((){ ... OnTap:(){ showBottomContainer(context); } ... }) showBottomContainer(BuildContext context) {showModalBottomSheet( context: context, builder: (BuildContext context) { return Container( ); }, );} 이런 식으로 작성되었었음. 이 함수는 Getx로 관리되는, 즉 Obx로 불러오는데 showModalBottomSheet를 사용하여 또 다시 빌드를 하여 생기는 문제였다. Ob..

Flutter 2023.03.08

[Flutter] Could not resolve all artifacts for configuration ':classpath'. 해결

좀 만들어진지 오래된 프로젝트를 실행하려고 했더니 바로 gradle 관련 오류가 떴다. 저번에도 시간을 잡아먹었던 오류이기 때문에 까먹기 전에 순차적으로 정리하려고 한다. 1) Kotlin 버전 맞추기 android 파일에 있는 build.gradle 파일을 들어가준다. buildscript { ext.kotlin_version = '1.7.20' //1.5.30 repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:7.4.1' //4.1.3 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } 저기서 $kotlin..

Flutter 2023.02.09

[Flutter] java.lang.RuntimeException : Unable to instantiate activity ComponentInfo 해결

요약 kotlin 파일에 패키지명(package com.example.패키지명)이 쓰여있는지 확인 Flutter앱이 에러도 없는데 실행하자마자 꺼졌다. Logcat에 error부분을 보니 java.lang.RuntimeException : Unable to instantiate activity ComponentInfo라고 쓰여있었다. 에러를 읽어보니 Caused by: java.lang.ClassNotFoundException : Didn't find class "com.~~이라고 쓰여있어서 kotlin 파일에 문제인가 하고 MainActivity.kt파일을 열어보았다. 알고보니 맨 위에 패키지명을 빼먹었다.. package com.example.패키지명을 써주니 정상적으로 작동되었다.

Flutter 2023.02.07

[Flutter] Execution failed for task ':app:compileDebugKotlin'. 해결

android 폴더 안 build.gradle파일에 dependencies, 올바른 kotlin 버전으로 수정 Kotlin과 Flutter를 연동하는 MethodChannel을 실습하고 있었다. Kotlin의 MainActivity.kt에 코드를 작성한 후 sync를 하고 난 뒤 실행하려고 보니 이런 에러가 떠있었다. 에러를 자세히 살펴보니 마지막 줄에 Exception: Gradle task assembleDebug failed with exit code 1이라고 적혀있어 혹시 gradle 문제일까 하고 android 폴더에 build.gradle 파일을 열어보았다. kotlin관련 오류 인것 같아 kotlin이 쓰여있는 줄을 찾아봤더니 노랗게 밑줄이 쳐져있었다. 1.7.20으로 해야하는데 $kotli..

Flutter 2023.02.07

[Flutter] 상태바로 인한 화면 잘림 해결하기 (+ 앱 화면 크기 가져오기)

앱 화면이 상태바 때문인지 화면이 잘렸다. 메시지 아이콘이 상태바랑 딱 붙어있어서 보기에도 좋지 않았고 터치하기 불편하였다. @override Widget build(BuildContext context) { final double statusBarHeight = MediaQuery.of(context).padding.top; //상태바 크기 가져오기 double deviceWidth = MediaQuery.of(context).size.width; // 앱 화면 넓이 가져오기 double deviceheight = MediaQuery.of(context).size.height; // 앱 화면 높이 가져오기 } 시스템 정보들을 알려주는 MediaQuery를 사용하여 구할 수 있다.

Flutter 2022.12.20

[Flutter] Firebase 자동 ID인 문서 가져오기

Flutter에서 Firebase에 있는 문서를 가져올 때 보통 firestore.collection('컬렉션명').doc('문서ID').get(); 이런 형식으로 가져온다. 해당 코드같은 경우 문서 ID를 알고 있어야 사용 가능하지만 내 Flutter 프로젝트는 자동 문서 ID로 저장되어 있어서 쓸 수 없다. 자동 ID인 문서 내용을 업데이트하는 함수 void updateVote(String vote, int voteCnt) { FirebaseFirestore.instance .collection(voteCol) .where("게시판이름", isEqualTo: colName) .where("게시글번호", isEqualTo: postnumber) .get() .then((value) => value.do..

Flutter 2022.12.17