안드로이드 Phonegap을 사용하기 위해서 폰갭 홈페이지의 가이드 문서를 그대로 따라하려는데,

create.. 즉 시작부터 막혔다.


에러메시지는 다음과 같다


...create.js(38, 5) Microsoft JScript 런타임 오류: 'length'은(는) null 이거나 개체가 아닙니다.

...create.js(38, 5) Microsoft JScript Runtime Error: 'length'is null or not an object.


create.js 파일을 열어보니 다음과 같은 내용이 있다.

function setTarget() {
    var targets = shell.Exec('android.bat list targets').StdOut.ReadAll().match(/id:\s\d+/g);
    return targets[targets.length - 1].replace(/id: /, ""); // TODO: give users the option to set their target 
}

결국 targets 라는 객체에 length 속성이 없다는 얘긴데,

targets를 보면 android.bat list target 명령을 쉘에서 실행하여 아웃풋으로 출력되는 값 중

"id : 숫자"의 형식으로 된 문자열의 배열을 반환하도록 되어있다.

match는 일치하는 문자열이 없으면 null을 반환하므로 당연히 targets에 대해 length 속성도 없다.


그렇다면 android.bat list targets의 문제다.


콘솔에서 android.bat list targets를 실행해보니 다음과 같이 나타난다.



각종 환경을 설치할 때 C:\Program Files 아래에 둔 것은 JDK 밖에 없다.

오류 메시지에 보면 C:\Program Files 에서 Files가 끊어진 것으로보아 띄어쓰기는 인식을 못한다는 얘기고,

붙여주기만 하면 된다.


시스템 설정의 환경 변수 설정에서 JAVA_HOME의 경로 설정에

양 끝에 큰 따옴표(")만 붙여 주어 위 문제를 해결할 수 있었다.



'머리가 뛰다' 카테고리의 다른 글

Behavior-Driven-Development BDD?  (0) 2013.02.22
Redmine 설치기  (0) 2013.02.16
구글느님 다 해쳐드세영.. ㅠㅠ  (0) 2012.11.06
자바스크립트는 보면 볼수록 상콤하다.  (0) 2012.10.25
iBatis Result Mapping...  (0) 2012.09.13

+ Recent posts