- 자동 빌드의 사용 목적.
- 빌드 버전이 여러개 인 경우 : 개발용빌드, 릴리즈형 빌드...기타 등등 의 이유로 여러개를 함께 빌드 하고자 할때 편리성 목적.
- 빌드 버전이 한번에 하나만 생성 하지만 수시로 버전이 바뀌는 경우 : 이런 경우 타겟을 넘겨서 해당 버전을 선택 함으로써 개발자 실수를 줄일수 있다.
- 위에 두개가 속하진 않지만 이클립스가 그냥 쓰기 싫어서 : 이런 경우 그냥 반항이다 -_- 소스 관리 하기도 그렇고 구지 자동 빌드 환경을 구축 할 필요 없는데 쓰는것은 싸우자는 것이다.
- 자동 빌드 사용 목적과 관계 없는것.( 간혹 그 목적을 잘못 알고 있는 개발자가 있더라. )
- 프로젝트 인원이 늘어나면 필요하다?
- 프로젝트 인원과 전혀 관계 없다. 프로젝트 인원이 100명이 되더라도 빌드를 하나만 한다면 그냥 이클립스에서 지원 하는 기능을 사용 하지, 구지 서버에서 자동빌드를 구축 한다던가 할 필요가 없다. 걍 삽질이다.
- 프로젝트 형상관리?
- 형상 관리는 SVN이나 Git가 가지는 목적이지. 빌드 프로그램의 주목적이 아니다. 자동 빌드는 빌드를 편하게 하는데 목적이 있다.
- 프로젝트 빌드 구성원이 개발자가 아니다? 그래서 별도로 해야 된다?
- 자동 빌드에서 구성 바꾸고 해보면 어느 정도의 지식이 필요하다. 근데 이클립스에서 지원하는 빌드를 사용하면 GUI로 매우 편하다. 그러므로 더더욱 이클립스 빌드를 사용 하는 것이 맞다.
- 사전 : 안드로이드, 자바, ANT 설치 및 환경변수 설정.
- build.xml 생성
android update project -p ./ [-name project_name]
- key 생성
keytool -genkey -v -keystore [keystore name].keystore -alias [alias name] -keyalg RSA -keysize 2048 -validity 10000
- ant.properties작성
key.store.password=password
key.alias.password=password
key.store=keystore_file_name.keystore
key.alias=alias_name
- build 실행
ant release
- 실행시 에러 발생.
BUILD FAILED
D:\androidSDK\sdk\tools\ant\build.xml:601: Invalid file: D:\androidSDK\sdk\extras\google\google_play_services\libproject\google-play-services_lib\build.xml
Total time: 0 seconds
위의 에러 내용은 외부 라이브러리로 사용하는 google_play_services에 build.xml이 없다고 그러는 것이다.
이럴때 그냥 build.xml을 동일하게 생성 해주면 된다. 예문은 아래와 같다.
cmd>android update project -p D:\androidSDK\sdk\extras\google\google_play_services\libproject\google-play-services_lib\
[aapt] invalid resource directory name: D:\androidSDK\sdk\extras\google\google_play_services\libproject\google-play-services_lib\bin\res/crunch
BUILD FAILED
D:\androidSDK\sdk\tools\ant\build.xml:601: The following error occurred while executing this line:
D:\androidSDK\sdk\tools\ant\build.xml:653: The following error occurred while executing this line:
D:\androidSDK\sdk\tools\ant\build.xml:698: null returned: 1
Total time: 0 seconds
위의 경우 빌드 되는 위치에 파일이 중복 되어 생기는 것이다. 지금의 경우 프로젝트/bin/crunch 가 중복 되었다.
보통 이클립스가 범인이다. 즉 같은 위치에 이클립스가 자동 빌드 한 위치에 ant가 그곳에 빌드 할려고 하니 "엇 내가 만든게 아닌 파일이 있네...나 안해"라고 하는 것이다.
이런경우 해당 파일을 삭제 하면 되겠다. 단 이클립스의 클린 기능을 활용 해도 좋다. 만약 외부 라이브러리 잘 안될 경우에는 그냥 수동으로 지워도 무방하다.
'ANDROID의 속삭임' 카테고리의 다른 글
[android][기초]CustomView (0) | 2014.06.16 |
---|---|
[android][TIP]가중치로 레이아웃 구성후 에디터텍스트의 자판으로 화면 일그러짐. (0) | 2013.11.11 |
[android][로그인][구상도] 안드로이드 어플리케이션 로그인 구상 (0) | 2013.10.23 |
[android][extendList] 확장리스트 (0) | 2013.10.23 |
[android][TIP]외부 어플리케이션 실행. (0) | 2013.10.23 |