Flutter 입문 - 안드로이드, iOS 개발을 한 번에

Flutter 입문 - 안드로이드, iOS 개발을 한 번에

(29개의 수강평)

446명의 수강생
33,000원
지식공유자 · 오준석
40회 수업 · 총 3시간 45분 수업
평생 무제한 시청
수료증 발급 강의
수강 난이도 '초급'
박기서 프로필

사진 추가 버튼에 관한 코드 작성 후 터미널에 계속 생기는 오류입니다 박기서 12일 전

터미널에서 버튼 누를때마다 생기는 오류Home에서 다른 곳으로 이동할 때나 create_page에서 사진 버튼을 누를 때 라이브러리로 받아온 사진도 뜨지 않고 터미널에 버튼을 누를때 마다 shader compilation error이 뜹니다..

해결 어떻게 해야하나요???

2
Hee-sung Moon 프로필

앱 시물레이터 실행 중 빈 화면... Hee-sung Moon 16일 전

안녕하세요 강사님.

현재 웹뷰를 사용하여 ios앱을 업로드 진행중인데...

앱이 빌드 후 시뮬레이터에서 화면이 들어온 후 빈화면으로 넘어간 후 아래와 같은 에러가 발생하는데

혹시 어떤 에러인지 좀 알 수 있을까요?

빌드시에는 에러가 발견되지 않는데 실행 후 thread constructor failed가 발생합니다.

웹뷰 문제인지... ios의 문제인지 정확이 알 수가 없어 질문 올립니다.

첨부사진 참고 부탁드립니다.

1
Daesung Kim 프로필

앱 꺼짐 Daesung Kim 22일 전

안녕하세요 앱 빌드 후 구글 로그인 화면을 누르면 앱이 꺼지는데 왜그런건가요? 

run 화면에 아래와 같이 나옵니다.

Build fingerprint: 'google/sdk_gphone_x86_arm/generic_x86_arm:9/PSR1.180720.117/5875966:userdebug/dev-keys'

Revision: '0'

ABI: 'x86'

pid: 13878, tid: 13878, name: 111_02_min_inst  >>> com.min19102901.flutter_191111_02_min_inst <<<

signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------

Abort message: '[FATAL:flutter/shell/platform/android/platform_view_android_jni.cc(76)] Check failed: CheckException(env). 

'

    eax 00000000  ebx 00003636  ecx 00003636  edx 00000006

    edi 00003636  esi 00000070

    ebp ffc64dc8  esp ffc64d68  eip f08a8b39

backtrace:

    #00 pc 00000b39  [vdso:f08a8000] (__kernel_vsyscall+9)

    #01 pc 0001fdf8  /system/lib/libc.so (syscall+40)

    #02 pc 00022ed3  /system/lib/libc.so (abort+115)

    #03 pc 01115f65  /data/app/com.min19102901.flutter_191111_02_min_inst-AMl6w2E2hwICByykdIrH5A==/lib/x86/libflutter.so (offset 0x10fb000)

    #04 pc 0110443b  /data/app/com.min19102901.flutter_191111_02_min_inst-AMl6w2E2hwICByykdIrH5A==/lib/x86/libflutter.so (offset 0x10fb000)

    #05 pc 01102202  /data/app/com.min19102901.flutter_191111_02_min_inst-AMl6w2E2hwICByykdIrH5A==/lib/x86/libflutter.so (offset 0x10fb000)

    #06 pc 011622ad  /data/app/com.min19102901.flutter_191111_02_min_inst-AMl6w2E2hwICByykdIrH5A==/lib/x86/libflutter.so (offset 0x10fb000)

    #07 pc 01114729  /data/app/com.min19102901.flutter_191111_02_min_inst-AMl6w2E2hwICByykdIrH5A==/lib/x86/libflutter.so (offset 0x10fb000)

    #08 pc 01116ce8  /data/app/com.min19102901.flutter_191111_02_min_inst-AMl6w2E2hwICByykdIrH5A==/lib/x86/libflutter.so (offset 0x10fb000)

    #09 pc 01116c2a  /data/app/com.min19102901.flutter_191111_02_min_inst-AMl6w2E2hwICByykdIrH5A==/lib/x86/libflutter.so (offset 0x10fb000)

    #10 pc 0111d678  /data/app/com.min19102901.flutter_191111_02_min_inst-AMl6w2E2hwICByykdIrH5A==/lib/x86/libflutter.so (offset 0x10fb000)

    #11 pc 0111d6a6  /data/app/com.min19102901.flutter_191111_02_min_inst-AMl6w2E2hwICByykdIrH5A==/lib/x86/libflutter.so (offset 0x10fb000)

    #12 pc 00012a77  /system/lib/libutils.so (android::SimpleLooperCallback::handleEvent(int, int, void*)+39)

    #13 pc 00013896  /system/lib/libutils.so (android::Looper::pollInner(int)+998)

    #14 pc 0001340b  /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+43)

    #15 pc 000e415b  /system/lib/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long long, int)+59)

    #16 pc 003ddb28  /system/framework/x86/boot-framework.oat (offset 0x3ca000) (android.media.MediaExtractor.seekTo [DEDUPED]+136)

    #17 pc 005f0a02  /system/lib/libart.so (art_quick_invoke_stub+338)

    #18 pc 000a2f4e  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+222)

    #19 pc 0029bb22  /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+338)

    #20 pc 00293cc8  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1048)

    #21 pc 005bd926  /system/lib/libart.so (MterpInvokeDirect+342)

    #22 pc 005e2ca1  /system/lib/libart.so (ExecuteMterpImpl+14497)

    #23 pc 00aeaf50  /system/framework/boot-framework.vdex (android.os.MessageQueue.next+38)

    #24 pc 00266096  /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3007865774+598)

    #25 pc 0026c61c  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+220)

    #26 pc 00293cab  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1019)

    #27 pc 005bc353  /system/lib/libart.so (MterpInvokeVirtual+691)

    #28 pc 005e2ba1  /system/lib/libart.so (ExecuteMterpImpl+14241)

    #29 pc 00aea9fc  /system/framework/boot-framework.vdex (android.os.Looper.loop+128)

    #30 pc 00266096  /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3007865774+598)

    #31 pc 0026c61c  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+220)

    #32 pc 00293cab  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1019)

    #33 pc 005bdb1f  /system/lib/libart.so (MterpInvokeStatic+207)

    #34 pc 005e2d21  /system/lib/libart.so (ExecuteMterpImpl+14625)

    #35 pc 00384cd2  /system/framework/boot-framework.vdex (android.app.ActivityThread.main+214)

    #36 pc 00266096  /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3007865774+598)

    #37 pc 0026c50e  /system/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+126)

    #38 pc 005a93fd  /system/lib/libart.so (artQuickToInterpreterBridge+1277)

    #39 pc 005f6aed  /system/lib/libart.so (art_quick_to_interpreter_bridge+77)

    #40 pc 005f0bd2  /system/lib/libart.so (art_quick_invoke_static_stub+418)

    #41 pc 000a2f5f  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+239)

    #42 pc 004d3209  /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+89)

    #43 pc 004d4eee  /system/lib/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned int)+1422)

    #44 pc 00449643  /system/lib/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+83)

    #45 pc 0011d778  /system/framework/x86/boot.oat (offset 0x114000) (java.lang.Class.getDeclaredMethodInternal [DEDUPED]+168)

    #46 pc 005f0a02  /system/lib/libart.so (art_quick_invoke_stub+338)

    #47 pc 000a2f4e  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+222)

    #48 pc 0029bb22  /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+338)

    #49 pc 00293cc8  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1048)

    #50 pc 005bc353  /system/lib/libart.so (MterpInvokeVirtual+691)

    #51 pc 005e2ba1  /system/lib/libart.so (ExecuteMterpImpl+14241)

    #52 pc 00c0b966  /system/framework/boot-framework.vdex (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22)

    #53 pc 00266096  /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3007865774+598)

    #54 pc 0026c50e  /system/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+126)

    #55 pc 005a93fd  /system/lib/libart.so (artQuickToInterpreterBridge+1277)

    #56 pc 005f6aed  /system/lib/libart.so (art_quick_to_interpreter_bridge+77)

    #57 pc 00badc2c  /system/framework/x86/boot-framework.oat (offset 0x3ca000) (com.android.internal.os.ZygoteInit.main+3100)

    #58 pc 005f0bd2  /system/lib/libart.so (art_quick_invoke_static_stub+418)

    #59 pc 000a2f5f  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+239)

    #60 pc 004d3209  /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+89)

    #61 pc 004d2e8d  /system/lib/libart.so (art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, char*)+429)

    #62 pc 003a770d  /system/lib/libart.so (art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+925)

    #63 pc 000d90f3  /system/lib/libart.so (art::(anonymous namespace)::CheckJNI::CallMethodV(char const*, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, char*, art::Primitive::Type, art::InvokeType)+2867)

    #64 pc 000c6ba9  /system/lib/libart.so (art::(anonymous namespace)::CheckJNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+73)

    #65 pc 0007098e  /system/lib/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+62)

    #66 pc 00073e88  /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+744)

    #67 pc 00001bb2  /system/bin/app_process32 (main+1506)

    #68 pc 000c0f54  /system/lib/libc.so (__libc_init+100)

1
Hee-sung Moon 프로필

ios빌드 중 에러 Hee-sung Moon 23일 전

안녕하세요.

현재 flutter로 Webview 패키지가 포함된 앱을 만들어서 빌드 시켜보고 있는데요

안드로이드 경우는 문제없이 빌드가 되는데 현재 ios는

Module을 찾을 수 없다는 에러가 나오면서 빌드가 실패합니다.

혹시 이런 경우 해결할 방법을 좀 알 수 있을까요?...

1
Jaekyung Lee 프로필

ios 사진불러오기 오류 해결방법 Jaekyung Lee 1달 전

<key>NSPhotoLibraryUsageDescription</key>
<string>This app requires access to the photo library.</string>
<key>NSMicrophoneUsageDescription</key>
<string>This app does not require access to the microphone.</string>
<key>NSCameraUsageDescription</key>
<string>This app requires access to the camera.</string>

root/ios/Runner/info.plist 파일에 위에내용 추가하시고

다시 실행시키면 오류 사라집니다~

1
Hee-sung Moon 프로필

flutter 앱 실행시 자동 url 연결. Hee-sung Moon 1달 전

안녕하세요 

강사님께서 만든 강좌를 보면서 플러터를 공부 중인 학생입니다.

혹시 제가 flutter 앱을 실행시 

지정한 url 사이트로 이동하게 만들고 싶은데 

어떻게 가능할 수 있을지 좀 여쭤봐도 될까요?

1
gjg807 프로필

floatingactionbutton시 print가 활성화가 안되요 ㅠㅠ gjg807 1달 전

1
이걸나진이 프로필

firebase > database > cloud firestore를 테스트모드로 생성 이후 '문서 로드 오류가 납니다.' 이걸나진이 1달 전

안녕하세요 강사님 해당 회차 까지 진행한 후 문서를 업로드하고 테스트를 하였는데 cloud Firestore에서 문서 로드 오류라는 말과 나오지 않고 있습니다. 

다른 분이 API enable시켜 보는 것도 해보았으나 마찬가지로 해결이 안되어 질문드립니다. 혹시나해서 강사님 코드를 전체 복붙을 해도 안되었습니다.

4
tbvjskawls 프로필

xcode 가 안되는데 어떻게 해결해야하나요? tbvjskawls 2달 전

런에 나온데로 pod setup 이라고 해도 적용이 안되네요 ㅜㅜ

1
Hyungjoo Lee 프로필

Mac 에뮬레이터 image 폴더 위치 Hyungjoo Lee 2달 전

Mac 에뮬레이터로 따라하고 있는데요, image picker가 파일을 읽어들이는 폴더가 어디인가요?

1
이연준 Lee 프로필

xcode 설정한후 안드로이드 스튜디오에서 ios시뮬레이터 실행 시 오류에 대해 이연준 Lee 2달 전

android studio에서 iso 시뮬레이터 실행 후 테스트 시

새로운 게시물 등록을 위해 create_page에서 카메라 버튼 클릭 시 로그에 "Lost connection to device." 메시지 표시되고 앱이 종료가 되는데...어떤걸 수정해야 할까요?

2
dlaqmffllove 프로필

로그아웃시 화면전환이 안되는데요. dlaqmffllove 2달 전

에뮬레이터로 실행시에 로그아웃시

콘솔에 아래와 같이 출력은 됩니다.

D/FirebaseAuth(32388): Notifying id token listeners about a sign-out event.

D/FirebaseAuth(32388): Notifying auth state listeners about a sign-out event.

그래서 에뮬레이터상에서 나갔다 들어오면 적용은되는데

로그아웃 버튼 누를시 바로 로그인페이지로 넘어가진 않더라구요.

깃허브에 올리신 소스랑 비교해봐도 똑같은데 (account_page)

뭔가 따로 설정해야 할것이 있는지 궁금합니다.

6
kyeonguk96 프로필

하나의 에뮬레이터에 두 개의 계정 로그인에 대해서 kyeonguk96 2달 전

하나의 에뮬레이터에 서로 다른 사람의 계정을 로그인했을때, 파이어베이스에 지원이메일에 등록된 계정은 정상동작을 하지만

그렇지 않은 계정은 정보를 불러오는데 오류가 발생하네요! 실제로 어플을 출시할 때, 파이어베이스에서 거쳐하는 절차가 따로 있나요???!! 

직접 답변하기에 너무 길거나 힘드시다면 참고할 수 있는 링크라도 알려주시면 감사하겠습니다!!

7
Jinsub Kim 프로필

메소드를 저장해서 계속 쓸 수는 없나요? Jinsub Kim 2달 전

항상 잘 보고 있습니다. 이미 몇 번이나 봤는데도 심심하면 와서 보게 되네요.

그러던 중 문득 궁금한 점이 생겼는데요.

강의를 보면 앱바는 _buildAppBar라는 이름의 메소드를 만들고 바디는 _buildBody라는 이름의 메소드를 만들어서 사용하시잖아요?

물론 각 페이지(다트파일)이 달라지면 메소드의 이름은 같아도 내용이 달라서 그때마다 그 페이지에서 새로 만들어서 메소드를 사용하시는데 만약 여러 개의 페이지에서 같은 내용의 메소드를 사용할 경우 한 페이지마다 계속 메소드를 선언한 후 사용해야 한다면 너무 귀찮을 것 같아서요.

물론 복사 붙여넣기가 있지만 프로그래밍 자체가 효율적으로 작업을 하기 위한 것인데 분명 플러터에도 이런 기능이 있을 것 같습니다.

혹시 알고 계신다면 이름이라도 간단히 소개해주시겠어요?

1
vampireahn 프로필

추가 질문 드립니다. vampireahn 3달 전

강의 소스중

Future<FirebaseUser> _hadleSignIn() async {
GoogleSignInAccount googleUser = await _googleSignIn.signIn();
GoogleSignInAuthentication googleAuth = await googleUser.authentication;
FirebaseUser user = await _auth.signInWithCredential(GoogleAuthProvider.getCredential(idToken: googleAuth.idToken, accessToken: googleAuth.accessToken));

return user;
}
await _auth.signInWithCredential(GoogleAuthProvider.getCredential(idToken: googleAuth.idToken, accessToken: googleAuth.accessToken));

이부분에서 빨간줄이 생깁니다.

 

잘못된곳이 없지 싶은데요...

1
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스