앱인벤터(App Inventor)에서 저장한 aia를 코듈러(Kodular)에서 빌드(export) 중 에러(index of, match, AAPT stage error) 원인과 해결방법 공유
최근 코듈러 사이트가 업데이트 되면서 몇가지 변화가 있는데 가장 눈에 띄는 것은 Screen1의 속성에 있던 버전코드와 버전네임, 패키지 네임 등이 아래 그림과 메뉴 중 오른쪽 끝 부분에 별도 메뉴로 만들어져서 그 메뉴로 들어가서 설정을 해야합니다.
그런데 앱 인벤터에서 작성한 프로젝트를 aia로 공유하여 읽어들여서 코듈러에서 빌드(export)를 하면 에러가 발생할 수 있습니다. 이전에는 없던 에러라 좀 당황스럽습니다만 코듈러 커뮤니티에 있는 글을 참고하여 나름 해결 방법을 찾았기에 공유해봅니다.
다음과 같이 'indexOf'에러가 발생하면
Error generation Yail for screen ~~~~~ : Cannot read property 'indexOf' of undefined. Please fix and try packaging again.
위의 설정 메뉴를 클릭하여 아래와 같은 프로젝트 세팅 창이 뜨면 General 메뉴에 누락된 항목이 있는 경우에 발생하는 것 같습니다. 특히 App Name, Icon 항목은 필수로 입력해야합니다. Splash Screen, RTL, json 항목은 옵션인데 한번씩 체크했다가 해제시키는 등의 방법으로 코듈러가 확실히 인식할 수 있도록 한번씩 건드려 주어야 제대로 인식(?)하는 것 같습니다. 일종의 코듈러 버그인듯합니다..
그리고 다음과 같이 match에러가 발생하면
Error generating Yail for screen ~~~~ : Cannot read property 'match' of undefined. Please fix and try packaging again.
프로젝트 세팅 메뉴 중 Publishing 항목이 누락되지 않았나 체크해봐야합니다.
Minimum SDK Level이 비어 있으면 클릭하여 선택하여 주시고
혹시 클릭 안했는데도 입력된게 있다면 기존에 작업한 프로젝트의 SDK 레벨이 그대로 보여질 수도 있으니 한번 더 클릭해줍니다.
당연히 Package Name이 비어 있으면 입력합니다. 패키지 네임은 "영어, 숫자, .'을 조합하여 임의로 입력하면됩니다만 주의할 사항은 이 세상에 있는 어떤 앱과도 중복되면 안된다는 것입니다. 당연히 내 앱과도 중복되면 안됩니다. 다만 마켓에 출시할 때 적용되는 체크사항입니다. 출시 안할 거면 중복여부는 전혀 신경쓰지 않으셔도 됩니다.
그럼에도 다음과 같은 AAPT stage 에러가 발생하면
Build failed! Error:Your build failed due to an error in the AAPT stage, not because of an error in your program.
프로젝트 세팅 메뉴의 Theming 중 Theme항목이 아무것도 없는 경우에 발생하는 에러입니다.
클릭하여 Default(또는 light 또는 dark)를 선택합니다.
이제 다시 Export하면 정상적으로 작업이 되는기쁨을 맛보실 수 있습니다.
다만, 최근 코듈러에서 업그레이드하면서 앱인벤터의 aia를 읽어오면 일부 블록을 읽어오지 못하거나 화면 갱신 후 저장이 되지 않는 버그가 발생하고 있습니다. 가능하면 처음부터 코듈러에서 작업을 하는 것이 이러한 에러를 발생시키지 않는 방법일 것입니다.