cocos2d-x

cocos2d-x-3.0rc1에서 이클립스(Eclipse)이용 안드로이드(스마트폰)디바이스로 프로젝트 빌드와 실행하기

콘파냐 2014. 4. 10. 12:21
플랫폼도 다양해지며 개발환경을 구축하는 것이 점점 복잡해 지는 것 같습니다. 

여기서는 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포함)
번들에 포함된 이클립스 실행시 문제 메뉴창 안보이는 문제가 있습니다. 
환경변수에 다음과 같이 추가하고 이클립스를 터미널로 실행하면 문제는 해결됩니다.
$vi ~/.bashrc 
추가
export UBUNTU_MENUPROXY=0
앞으로 이클립스 실행시 터미널로 실행 
이클립스폴더로 가서 또는 환경변수설정에 이클립스 루투를 추가한다. 좀 이따 나오는 글 환경변수참고. 환경변수는 설치 후 한번에 설정하겠습니다.
$./eclipse
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 설치
윈도우설치시 다운로드 주소 : http://ant.apache.org/bindownload.cgi
자바 컴파일러입니다. cocos-console을 위해 필요하다고 합니다.
$sudo apt-get install ant
$gedit ~/.profile

추가 : Python(파이선)을 설치하셔야합니다.(2.7.6버전 권장)
환경변수 path에 추가해주세요. ex) c:\python27

1-6. 환경변수설정
$gedit ~/.profile

# 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 루트로가서
$python setup.py
확인하고 그냥 엔터. 만약 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
(안드로이드)
-waiting for device- 

라고 뜨면 정상(디바이스가 연결되지 않은 상태)


디바이스가 연결되어 있고, 빌드가 성공하면 위와같이 나오면서 안드로이드 디바이스에서 프로그램이 구동이 됩니다.
안드로이드 스마트폰이 연결되어있는 경우 빌드가 성공하면 스마트폰에서 확인가능. 스마트폰에서 디버깅모드가 설정되어있어야함.
(참고:우분투 14.04를 바로 설치하고 위 과정을 따라하신 경우 라이브러리팩을 설치해야합니다.) (아래쪽 trouble shoot 참고)
$cocos run -p ios
 (IOS)
$cocos run -p mac  
(MAC)
$cocos run -p win32 (비주얼 스튜디오가 인스톨 되어있어야함)

리눅스용으로 빌드할때 해야할 것(여기는 리눅스용 빌드입니다.)

$cd cocos2d-x-3.0rc1/build

$./install-deps-linux.sh
리눅스용으로 빌드할 경우는 필요한 작업입니다.
위 작업은 라이브러리를 빌드하며 의존성을 맞추는 과정입니다. 이 과정은 cocos2d-x설치후 한번만 하면 된다고 합니다.


2-2. 안드로이드 프로젝트의 경우 다음과 같은 작업을 해줍니다.(이클립스)

2014/04/08 - [리눅스/Android개발] - 안드로이드 개발환경 구축(android, 이클립스(Eclipse),우분투)

이클립스를 안드로이드 개발을 위해 사용하기전에 위 글을 참고하시길 바랍니다.

커맨드창에서 android친후 android sdk manager를 실행후 기본항목만 인스톨만 하시면 될겁니다.


이 과정을 이클립스를 이용하는 방법입니다. 결과는 위와 동일합니다. 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'

기타 참고

2014/04/08 - [리눅스/Android개발] - 안드로이드 개발환경 구축(android, 이클립스(Eclipse),우분투)


2014/02/17 - [cocos2d-x] - cocos2d-x 3.0 beta2 설치를 다시해보다.


https://github.com/chukong/cocos-docs/blob/d0c99b361dac09dd01d42ad1af23c13b515aaf7d/manual/framework/native/getting-started/v3.0/how-to-run-cpp-tests-on-android/en.md

이 과정은 우분투 14.04에서(윈도우7에서도 확인) 직접 시행착오를 겪으며 정리한 자료입니다. os종류와 버전에 따라서 여러가지 문제점들이 발생할 수 있지만, 흐름은 어떤 문서를 보든 같다고 생각됩니다. 하지만 이런 문서들이 통합되어 있는 자료는 찾기 어려워 직접 안드로이드 빌드환경을 구성하면서 통합해보려 노력했습니다. 힘들게 정리한 자료니 퍼가실때는 꼭 출처를 남겨주시길 바랍니다.



이 과정을 마쳤으면 IDE환경을 구성해야하는데 우분투에서는 자료도 별로없고, 하는 사람도 별로없기에 차라리 윈도우나 맥에서 개발하시는 것을 권합니다. 위 과정은 안드로이드용 어플을 만들기위해서 어짜피 세팅해야하기 때문에  IDE환경 구성과 마찬가지로 중요한 부분입니다. 이클립스 상에서 개발도 가능하다하지만, 권하시는 분이 많지 않아보입니다. 가장 좋은 환경은 VS2013환경이라고 생각듭니다. 환경구성도 간단하고, 자료도 많기 때문이죠. 

반응형