300x250

initState() 메서드에서 Provider read () 메서드를 호출하였다.

그러자

"setState() or markNeedsBuild() called during build."  에러를 뱉어냈다.

원인은

Widget LifeCycle 에 위배되기 때문이다.  ( Widget Life Cycle 참조 ) 

build() 메서드는 Widget Tree 를 생성하는 역할을 하는데 해당 프로세스가 완료 되기 전에 

Provider 내부 동작 중에 setState ( markNeedsBuild ) 혹은 메서드를 호출했기 때문이다. 

( framework 에 그리라는 명령을 한 샘 )

해결책

 

1. WidgetsBinding 인스턴스의 addPostFrameCallback 등록하여 사용

2. 

3. 

( 2, 3번은 추후 업데이트 ) 

 

반응형
300x250

다트언어로 웹스크래핑이 필요했다.

헌데 http 응답 문자열 인코딩이 utf-8로 되었을줄 알고 ut8로 디코딩하였고 한글이 깨져보였다.

 

원인은

응답 문자열 인코딩이 EUC-KR 이였던고 안타깝게도 dart 는 네이티브하게 비 유니코드 ( non-unicode ) 를 지원하지 않는다고 한다 ( 출처는 아래 패키지에 설명 되어 있다.  패키지 내용은 잠시후에 설명 ) https://pub.dev/packages/cp949_dart

 

cp949_dart | Dart Package

c949 encode, decode for dart

pub.dev

 

 

해결 방법은

위 패키지 ( 배포해주신분 너무 감사합니다 ㅜㅜ ) 를 가져와

비 유니코드로 인코딩된  responseBytes / byte 배열 ( Uint8List ) 을 디코딩하면 된다.

자세한 내용은 패키지 Readme에 적혀있으니 참고하면 된다~!~!

 

 

reponse header content-type char-set를 확인하자!

반응형
300x250

When


Command : flutter doctor

Check platform dependency

 

...
Android Studio not found at
...

 

 

 

Why


Android Studio 경로 찾을 수 없음. Android Studio not found.

 

Solution

 


아래 명령어를 이용해 /Android Studio/Contents의 경로를 설정한다. 

Set Android Studio path.

 

flutter config --android-studio-dir=/Users/<$YOUR_USER>Android\ Studio.app/Contents

 

Notice


 

  1. Verify path of Android Studio.  Android Studio 경로 확인 
    - /Applications/...   
    - /Users/<$USER>/Applications/... 

  2. Space character.  공백 문자 
    - .../Android Studio.app/...  ( X )
    - .../Android\Studio.app/...  ( O ) 
반응형

+ Recent posts