모바일 기기에 앱을 넣고 실행해보면 가끔 어찌된 영문인지 앱 실행 시 검은화면이 표시되고 더이상 구동되지 않는 경우가 발생합니다. 

검은화면은 앱 실행 시 오류가 발생한 경우 표시됩니다.

 

참고: 디버깅이 가능하다면, 디버그 모드(Run > Run: F9)로 실행하면 대부분의 오류 내용을 확인할 수 있습니다.

 

실행 시 발생하는 오류는 다양하지만 자주 발생하는 이슈는 아래와 같습니다.

  • FormCreate, FormShow 이벤트에 작성한 코드에서 오류 발생
  • 컴포넌트 Enable(또는 Active) 속성을 True로 설정 후 실행하면 실행 시 활성화 되고 활성화 시 오류 발생 가능
  • 필요한 라이브러리가 함께 배포되지 않은 경우
  • (안드로이드 경우)권한이 없는 기능을 사용한 앱이 구동 시 오류 발생

위 내용의 조치방법은 아래와 같습니다.

1, FormCreate(또는 FormShow) 이벤트에 작성한 코드에서 오류 발생

 

FormCreate 또는 FormShow 이벤트핸들러에 작성한 코드에서 오류가 발생하면 구동 시 검은 화면이 발생합니다.

오류가 발생하지 않도록 코드를 점검하고, 예외처리(try..except)를 추가하기 바랍니다.

 

또, 라이프사이클 이벤트를 이용해 앱 완전 구동 후 작업을 수행할 수 있습니다.

2, 컴포넌트 Enable(또는 Active)속성을 True로 설정 후 실행하면 실행 시 활성화 되고 활성화 시 오류 발생 가능

 

폼위에 올려놓은 컴포넌트도 내부적으로는 앱이 실행될때 코드가 실행됩니다. 특히 Enable과 Active 속성을 갖는 컴포넌트의 경우 앱 실행 시 활성화됩니다. 이때 컴포넌트 활성화에 필요한 정보가  설정되지 않은 경우 오류가 발생합니다.

예를 들어 DB 연결 시 DB의 경로가 플랫폼의 경로로 설정되지 않았다면, 오류가 발생할 수 있습니다.

 

이 경우, 앱이 구동된 이후 Enabled, Active 속성을 True로 변경하도록 처리하기 바랍니다.

3, 필요한 라이브러리가 함께 배포되지 않은 경우 오류가 발생할 수 있습니다.

 

데이터 연결 등 외부 라이브러리를 이용하는 경우, 외부 라이브러리 배포를 하지 않고 앱을 실행하면 구동 시 오류가 발생합니다.

 

이 경우, 배포관리자(Project > Deployment) 화면에서 필요한 라이브러리를 추가하기 바랍니다.

그리고, 플랫폼별 배포경로를 다음 링크에서 확인해 Remote Path를 설정하기 바랍니다.

팁으로 데이터 엑세스 관련된 라이브러리 파일은 Add Featured Files 기능을 이용해 추가할 수 있습니다.

4, (안드로이드 경우)권한이 없는 기능을 사용한 앱이 구동 시 오류가 발생할 수 있습니다.

 

블루투스 컴포넌트를 폼에 올리고 안드로이드에서 앱을 실행하려면 블루투스 권한을 설정해야 합니다.

 

사용 권한은 프로젝트 옵션(Project > Option > Uses Permissions)에서 설정할 수 있습니다. 

 

권한에 대한 자세한 정보는 엠바카데로 기술문서를 참고하세요.

5, 로그를 기록해 원인 파악해 보세요.

 

Log.d 메소드등을 통해 앱 구동시 호출되는 메소드 시작과 끝에 로그 메시지를 추가하고, 로그 메시지를 통해 오류가 발생한 부분을 파악해보기 바랍니다.

되도록, 논비주얼 컴포넌트의 Active, Enabled 속성은 False로 설정 후 코드상에서 활성화 하도록 조치하면 어떤 컴포넌트 활성화 시 오류가 발생하는지 알 수 있습니다.

Log.d 사용 방법은 아래의 링크에서 확인하시기 바랍니다.

기타 오류가 발생할 수 있는 경우

멀티-디바이스 뷰를 추가 후 추가한 뷰에 설정 값을 잘 못 넣은 경우

위 그림과 같이 멀티-디바이스 디자이너는 여러가지 플랫폼과 해상도에 맞는 디바이스 뷰를 추가해 폼 디자인을 다르게 구성할 수 있습니다.

 

간혹, 디자인 뿐 아니라 연결 컴포넌트 등의 속성을 추가한 뷰(위 그림에서 Android 5" Phone)에 잘못된 설정을 하고, Master 뷰에서 원인을 찾을 경우 쉽게 못찾는 경우가 있습니다.

 

위 문제의 해결책은 되도록, 연결 등의 Non-visual 컴포넌트는 데이터모듈에 추가하도록 합니다. 부득이 폼에 추가한 경우 Master 뷰에서 속성을 변경 해 추가한 뷰에서 Master의 속성을 상속받아 실행되도록 합니다.

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 15437
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13961
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16499
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22054
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23268
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18923
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39253
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174698
923 n [도서/PDF/소스코드] 시작하는 사람들을 위한 델파이 프로그래밍-모듈 10. 그래픽들 관리자 2019.03.29 1046
922 n [도서/PDF/소스코드] 시작하는 사람들을 위한 델파이 프로그래밍-모듈 9. 함수들 관리자 2019.03.29 1683
921 n [도서/PDF/소스코드] 시작하는 사람들을 위한 델파이 프로그래밍-모듈 8. 프로시저들 관리자 2019.03.29 625
920 n [도서/PDF/소스코드] 시작하는 사람들을 위한 델파이 프로그래밍-모듈 7. 중접된 If...Then...Else 문. 작업 해결 실습하기 관리자 2019.03.29 676
919 n [도서/PDF/소스코드] 시작하는 사람들을 위한 델파이 프로그래밍-모듈 6. 프로그램에서 조건에 따라 실행. If...Then...Else 문 관리자 2019.03.29 902
918 n [도서/PDF/소스코드] 시작하는 사람들을 위한 델파이 프로그래밍-모듈 5. 논리 표현들. Boolean 타입 변수들. 논리 연산들 관리자 2019.03.29 621
917 n [도서/PDF/소스코드] 시작하는 사람들을 위한 델파이 프로그래밍-모듈 4. 표준 수학 함수들 관리자 2019.03.29 658
916 n[도서/PDF/소스코드] 시작하는 사람들을 위한 델파이 프로그래밍-모듈 3. 변수들, 변수의 타입들, 타입 변환하기 관리자 2019.03.29 704
915 n [도서/PDF/소스코드] 시작하는 사람들을 위한 델파이 프로그래밍-모듈 2. 버튼 누름, 이벤트 다루기 관리자 2019.03.29 818
914 이 달의 기술자료 - 2019년 04월 file 험프리 2019.03.28 739
913 [엠바카데로 Feature Friday]10.3.1에서의 iPhone X, iPad Pro 해상도 지원 관리자 2019.03.21 368
912 이 달의 기술자료 - 2019년 03월 file 험프리 2019.02.27 517
911 [10.3 리오][업데이트1] 재설계한 RAD서버 콘솔 UI : API 분석 용이 & Ext JS로의 마이그레이션 지원 관리자 2019.02.22 496
910 [10.3 리오][업데이트1] VCL, FMX용 새로운 스타일 15종 지원 관리자 2019.02.22 1354
909 [10.3 리오][업데이트1] iOS 12, iPhone X 시리즈 디바이스들 지원 관리자 2019.02.22 434
908 [10.3 리오][업데이트1] 새로운 IDE 생산성 도구: 북마크 & 탐색기 관리자 2019.02.22 624
907 [도서/PDF/소스코드] 시작하는 사람들을 위한 델파이 프로그래밍-모듈 0. 책 소개. 저자 소개. 목차 관리자 2019.02.20 2410
906 [10.3 리오][업데이트 1] What's NEW! 신기능 자세히 보기 험프리 2019.02.18 1996
905 암호화 라이브러리 LockBox 컴포넌트 사용하기 [3] file 험프리 2019.02.18 2613
904 [발표자료] 20190214 델파이 24주년 기념 세미나: 델파이 앱 현대화 방안 - 다양한 데이터 서비스 연동하기 file 관리자 2019.02.15 484