플랫폼도 다양해지며 개발환경을 구축하는 것이 점점 복잡해 지는 것 같습니다.
여기서는 cocos2d-x로 만든 게임을 안드로이드 디바이스로 구동하는 법을 포스팅합니다.
beta2와 3.0rc1은 방법이 또 바뀌었습니다.ㅠ
직접 실행해보며 성공한 결과를 포스팅하였습니다.
사용 OS는 우분투 14.04이며 윈도우나 맥의 경우도 거의 동일합니다.
참고하시면 되겠습니다. 혼란의 여지가 있는 그림만 올리겠습니다.
1-1. cocos2d-x다운로드
압축풀기 최신버전입니다. 여기서는 cocos2d-x-3.0rc1폴더를 cocos2d-x폴더라 하겠습니다.
1-2. Download the SDK ADT Bundle for Linux다운로드(Eclipse포함)
번들에 포함된 이클립스 실행시 문제 메뉴창 안보이는 문제가 있습니다.
환경변수에 다음과 같이 추가하고 이클립스를 터미널로 실행하면 문제는 해결됩니다.
추가
export UBUNTU_MENUPROXY=0
앞으로 이클립스 실행시 터미널로 실행
이클립스폴더로 가서 또는 환경변수설정에 이클립스 루투를 추가한다. 좀 이따 나오는 글 환경변수참고. 환경변수는 설치 후 한번에 설정하겠습니다.
jdk가 설치되지 않았으면 경고가 뜹니다. 우선 jdk를 설치
1-3. JDK설치(version 1.8)
JDK의 설치는 최신으로 하겠습니다. 자세한 내용은 아래 사이트를 참조하세요.
$sudo add-apt-repository ppa:webupd8team/java
$sudo apt-get update
$sudo apt-get install oracle-java8-installer
1-4. android NDK
이클립스에서 C/C++사용을 위해 필요합니다.
압축을 풉니다. 나중에 환경변수에 지정만 해주면 됩니다.
환경변수에 추가해주세요.
1-5. ANT 설치
자바 컴파일러입니다. cocos-console을 위해 필요하다고 합니다.
$sudo apt-get install ant
$gedit ~/.profile
추가 : Python(파이선)을 설치하셔야합니다.(2.7.6버전 권장)
환경변수 path에 추가해주세요. ex) c:\python27
1-6. 환경변수설정
# Add environment variable COCOS_CONSOLE_ROOT for cocos2d-x
export COCOS_CONSOLE_ROOT=/home/abc/cocos2d-x-3.0rc1/tools/cocos2d-console/bin
export NDK_ROOT=/home/abc/AndroidDev/android-ndk-r9d/
export ANDROID_SDK_ROOT=/home/abc/AndroidDev/sdk/
export ANT_ROOT=/usr/share/ant/bin
export PATH=$COCOS_CONSOLE_ROOT:$NDK_ROOT:$ANDROID_SDK_ROOT:$PATH:$ANDROID_SDK_ROOT/tools/:$ANDROID_SDK_ROOT/platform-tools/:$ANT_ROOT
제 환경변수설정입니다. 참고하시면 됩니다. 터미널에서 이클립스가 실행이 안될 경우 ~/.bashrc 에 이클립스 루투폴더 환경변수를 설정해주시길 바랍니다.
$source ~/.profile
-cocos2d에서 제공하는 환경변수 설정방법(확인용)
cocos2d-x 루트로가서
확인하고 그냥 엔터. 만약 Not Found 라고 나오면 환경변수 설정이 잘못 된 것입니다.
2-1. 빌드와 동시에 안드로이드 기계에서 실행(커맨드 창에서 하는 방법)
각 타겟 플랫폼별 build and run(라이브러리관련 에러가 나는 경우 아래쪽에 정리해 놓은 trouble shooting)정리된 글을 봐주시기 바랍니다.
통합프로젝트를 생성하는 방법입니다..
$cocos new GameName -p com.companyName.GameName -l cpp -d ~/projectFolder
읽어보니 이 과정은 템플릿에있는 헬로우월드를 복사하는 과정이네요.
$cd ~/projectFolder/GameName
여기까지 공통(통합프로젝트생성)
실행(이 과정은 꽤 오래 걸립니다.)
$cocos run -p android -j 4
(안드로이드)
라고 뜨면 정상(디바이스가 연결되지 않은 상태)
디바이스가 연결되어 있고, 빌드가 성공하면 위와같이 나오면서 안드로이드 디바이스에서 프로그램이 구동이 됩니다.
안드로이드 스마트폰이 연결되어있는 경우 빌드가 성공하면 스마트폰에서 확인가능. 스마트폰에서 디버깅모드가 설정되어있어야함.
(참고:우분투 14.04를 바로 설치하고 위 과정을 따라하신 경우 라이브러리팩을 설치해야합니다.) (아래쪽 trouble shoot 참고)
(IOS)
(MAC)
$cocos run -p win32 (비주얼 스튜디오가 인스톨 되어있어야함)
리눅스용으로 빌드할때 해야할 것(여기는 리눅스용 빌드입니다.)
$cd cocos2d-x-3.0rc1/build
$./install-deps-linux.sh
리눅스용으로 빌드할 경우는 필요한 작업입니다.
위 작업은 라이브러리를 빌드하며 의존성을 맞추는 과정입니다. 이 과정은 cocos2d-x설치후 한번만 하면 된다고 합니다.
2-2. 안드로이드 프로젝트의 경우 다음과 같은 작업을 해줍니다.(이클립스)
이 과정을 이클립스를 이용하는 방법입니다. 결과는 위와 동일합니다. cocos-console을 이용할지 이클립스를 이용할지는 개발자의 몫이지만, 두가지 방법을 다 알아놓아야 한다고 생각합니다.
cocos2d-x/cocos/2d/platform/android/java/src/org/cocos2dx/lib
폴더를
자신이 만든 통합 프로젝트의
/proj.android/src/org/cocos2dx/
에 복사합니다.
자신의 통합프로젝트 proj.android디렉토리에서
$python ./build_native.py
안드로이드용으로 빌드하는 과정입니다. cocos-console과 동일하다 보시면 됩니다.
이클립스를 실행한 후에
File->New->Project
->Android
->Android Project from Existing Code
Browse....에서 자신이 만든 또는 테스트할 프로젝트 proj.android 폴더를을 엽니다.
*중요 : 같은 방법으로
Browse... 에서
cocos2dx/cocos/2d/platform/android/java 폴더를 엽니다.
libcocos2dx project가 로드됩니다.
libcocos2dx] Unable to resolve target 'android-10' 무시
자신의 스마트폰에 USB romote debugging모드를 설정해야합니다.
디버깅 모드 설정법(작성중)
설정한후 컴퓨터와 USB로 연결
Run as -> Android Application을 선택하면 자신으 프로젝트가 안드로이드 스마트폰에 뜨면 성공.
cocos2dxActivity cannot be resolved to a type 에러가 날 경우 다음링크를 참조하시면 해결하실 수 있습니다.
http://tistory.jasontody.com/177
여기까지 빌드후 스마트폰 디바이스에서 구동하는 법입니다.
스마트폰 구동화면
생각보다 개발환경 구성하는데 시간을 많이 뺏깁니다. 개발환경 구성도 중요하지만, 이런 작업이 좀 더 간소화 되었으면 하는 바램으로 정리하여 올립니다. 도움이 되셨길 바랍니다.
***여기서 부터는 참고사항입니다.***
cocos2dx설치후제일 처음 하는 테스트
cocos2d-x/build/ 로 가서 안드로이드 빌드 시험
python android-build.py -p 10 cpp-tests
이클립스와 커맨드라인으로 안드로이드 스마트폰에서 샘플테스트
통합 프로젝트 만들고 빌드와 런 그리고 런 테스트까지
Trouble Shooting
참고 사이트
ERROR:libz.so.1:cannot open shared object file:No such file or directory
또는 lib32stdc++6 관련 에러
SDK의 경우 32비트 라이브러리를 사용한다.
32비트 라이브러리 패키지는 다음과 같이 설치할 수 있다.
$sudo apt-get install ia32-libs
만약 패키지를 찾지 못한다면 우분투 14.04버전일 것이다.
14.04버전에서는 다음과 같이 직접 설치한다.
$sudo apt-get install lib32z1
$sudo apt-get install lib32stdc++6
Couldn't fint the gcc toolchain
(ndk관련에러입니다. ant관련 에러 또한 환경변수에 추가되지 않은 경우에 발생하니 환경변수 설정을 해주시길 바랍니다.)제가 한 세팅을 참고하시길 바랍니다.
libcocos2dx] Unable to resolve target 'android-10'
기타 참고
이 과정은 우분투 14.04에서(윈도우7에서도 확인) 직접 시행착오를 겪으며 정리한 자료입니다. os종류와 버전에 따라서 여러가지 문제점들이 발생할 수 있지만, 흐름은 어떤 문서를 보든 같다고 생각됩니다. 하지만 이런 문서들이 통합되어 있는 자료는 찾기 어려워 직접 안드로이드 빌드환경을 구성하면서 통합해보려 노력했습니다. 힘들게 정리한 자료니 퍼가실때는 꼭 출처를 남겨주시길 바랍니다.
이 과정을 마쳤으면 IDE환경을 구성해야하는데 우분투에서는 자료도 별로없고, 하는 사람도 별로없기에 차라리 윈도우나 맥에서 개발하시는 것을 권합니다. 위 과정은 안드로이드용 어플을 만들기위해서 어짜피 세팅해야하기 때문에 IDE환경 구성과 마찬가지로 중요한 부분입니다. 이클립스 상에서 개발도 가능하다하지만, 권하시는 분이 많지 않아보입니다. 가장 좋은 환경은 VS2013환경이라고 생각듭니다. 환경구성도 간단하고, 자료도 많기 때문이죠.