TANGLE

cocos2d-x 3.2 안드로이드 이클립스 윈도우 개발환경 세팅

# 이 글은 3.2버전 기준입니다. 2014년 11월 중순 체크해보니 3.3rc0이 최신 버전이더군요. 최신 버전도 이 방법보다 쉬우면 쉬웠지 어려워지진 않으라 생각합니다. ㅎㅎ 빠른 호흡을 위해 이미지는 넣지 않겠음.


0. cocos2d-x 다운받기. http://www.cocos2d-x.org/download에 적절히 들어가서 적절히 C:\에 압축 풀어놓읍시다.

1. adt 설치: http://developer.android.com/sdk/index.html 

2. ndk 설치: http://developer.android.com/tools/sdk/ndk/index.html 

3. ant 설치: http://ant.apache.org/bindownload.cgi 

4. jdk 설치: http://www.oracle.com/technetwork/java/javase/downloads/index.html -> jdk

각각 최신 버전으로 다운받는게 좋겠죠? 하지만 특정 버젼끼리 충돌이 있을 수가 있습니다. 그럴 땐 구버전을 다운받아야 할 때도 있어요. 2014년 10월 기준으로 가능한 조합은 다음과 같습니다. 각각의 역할에 대해서는 생략. 그리고 전부 C:\든 루트디렉토리에 설치해주세요. 그게 제일 안심이.. 되잖아요?

adt:20140702,  ndk-r9d, ant1.9.4, jdk1.8.0_11


5. 환경변수 설정: 시작 - "시스템 환경 변수 편집" 검색 - 환경 변수(N)... - 

5.1. ANDROID_HOME : adt 하위 sdk 폴더

5.2. ANDROID_SDK_ROOT : adt 하위 sdk 폴더

5.3. ANT_ROOT: ant 폴더

5.4. APP_ANDROID_ROOT: adt 하위 sdk 폴더

5.5. CLASS_PATH: ;   - 세미콜론 하나만 두고 비워두는 겁니다. (왠진 모르지만 다른 분이 쓰신 글에 그렇게 적혀있었슴.)

5.6. COCOS2DX_ROOT: cocos2d-x 폴더

5.7. JAVA_HOME: jdk 폴더

5.8. NDK_ROOT: ndk 폴더

5.9. NDK_TOOLCHAIN_VERSION: clang3.4

5.10. Path에 추가- ant폴더\bin;ndk폴더;jdk폴더\bin;

일단 되는 대로 추가합니다. 혹여나 나중에 추가 안해서 고생 보기보다 그냥 조금이라도 사용될 여지가 있는 것들 다 추가합니다.


6. 이클립스 설치. Luna 버전이나 더 최신 버전, 구버전을 사용해도 상관 없습니다.

이클립스에서 CDT와 ADT플러그인 설치:

ADT: Help - Install New Software - Add.. - https://dl-ssl.google.com/android/eclipse/

CDT: Help - Install New Software - Add.. - http://download.eclipse.org/tools/cdt/releases/8.5

적절하게 코어 포함해서 쓸만한 도구까지 추가로 설치합니다.


7. 새 프로젝트 만들기 : 실행- cmd - “cd  [cocos2d-x디렉토리]\tools\cocos2d-console\bin”를 치고. "cocos new TempGame1 -p com.ezkorry.game -l cpp -d C:\cocos2dProject" 로 새로운 프로젝트 생성. 

TempGame1은 게임 이름을 누르고 com.ezkorry.game은 네임스페이스이고 -l 뒤에 cpp는 사용할 언어를 설정하는 겁니다.


8. 그 프로젝트 폴더에 들어가서 .settings 폴더와 .classpath, .cproject, .project 파일을 압축을 하든 다른 곳으로 복사를 하든 백업해 둡니다.

이클립스가 꼬이면 이 파일폴더를 삭제해야 비로소 제 구실을 하므로 혹시나를 위해 백업을 해두는 겁니다. 정말 꼬이는 것때문에 고생했어요. 이거 백업안해두면 나중에 일일히 인클루드 디렉토리 설정을 해줘야..하는 불상사가..


9. 만든 프로젝트를 이클립스에서 불러오기 (File -> New -> Other.. -> Android Project from Existing Code). 불러오면 자동으로 빌드가 진행됩니다. 조금 기다립시다.


10. "cocos2d-x폴더\cocos\platform\android\java\src\org" 폴더를 복사해서 "프로젝트루트\proj.android\src\org" 로 합치기붙여넣기.

이클립스에서 이걸 안해주면 라이브러리 찾을 수 없다고 징징댑니다. 이 폴더 하위 내용이 왜 빠졌는지는 모르겠지만 어쨌든 수동으로 넣어줍시다.


11. File -> New -> Other에서 C/C++\Convert to a C/C++ Project(Adds C/C++ Nature) 여기 들어가서 목록에 자기 프로젝트가 뜬다면 해줍니다. 안 뜬다면 이 단계는 건너뛰세요. Project  type:은 "Makefile project"를 선택하고 Toolchains:는 기본 값인 -- Other Toolchain -- 를 선택해 준다. (할 필요가 없을 수도 있음)


참고: http://bongman.tistory.com/16 

단, C/C++ 빌드 셋팅의 빌드 커맨드를 python ${ProjDirPath}/build_native.py -b release 로 함.


12.프로젝트폴더\jni\Application.mk 파일을 수정합니다.

NDK_TOOLCHAIN_VERSION := 4.8

알 수 없는 에러를 고치다가 이걸로 해주니 제대로 작동하더군요. := clang 으로 해줘도 문제는 없을 것 같다만, 왜 =clang으로 되어있는지 모르겠어요.

----

여기까지 왔으면 아래는 입맛 따라 하는 부분입니다. 저는 다른 블로그에서 말하는 권장 설정대로 바꾸어보았습니다.


13. AndroidManifest.xml 파일 변경:

<uses-sdk android:minSdkVersion="9"/> 이거를 <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="14"/>

android:configChanges="orientation" 이거를android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" 요걸로. (screenSize와 smallistScreenSize는 안드로이드 sdk 10에서는 먹히지 않으니까 project.properties 파일에서 타겟을 14이상으로 바꾸자.)


14. project.properties 파일

target=android-14 로 바꾸기.


15.. 이건 지금은 할 필요 없습니다. 나중에 소스코드를 추가할 때 같이 수정해줘야 합니다.

 jni/Android.mk 파일

LOCAL_SRC_FILES := hellocpp/main.cpp \

                   ../../Classes/AppDelegate.cpp \

                   ../../Classes/MainScene.cpp \

                 에 cpp파일 추가하기.



빌드를 하게 되면 다시 기다립시다. 사실 프로젝트 불러올 때 이 과정을 거치는데, 안드로이드 버전 바꾼다고 다시 빌드하는 겁니다. 프로젝트 불러오기 전에 사용할 안드로이드 버전을 바꾼다면 문제 없을 듯합니다.