'android'에 해당되는 글 2건

  1. [cocos2d-x] 2.Start
  2. [Linux] Android Studio 실행 오류 (2)

[cocos2d-x] 2.Start

2.Cocos2D-X Start

지난 시간에는 Cocos2D-X의 설치와 프로젝트 생성에 대해서 알아보았다…
너무 어렵고 복잡하게 설명한게 아닌가 걱정도 되지만….@_@;;; 일단 그대로 진행하겠다.




프로젝트가 생성되고나면 그 다음부터는 아주 간단하다.
그냥 프로젝트를 불러오고 빌드만 해주면 끝!!



하지만, 지난번에 빠진 내용이 있어서 추가해보도록 하겠다.
지난번에 수정한 create_project.py를 가지고 프로젝트를 생성하면 IOS는 바로 빌드가 되지만, Android는 이런저런 설정을 추가로 잡아줘야 빌드가 가능하다… OTL…


뭔가 이런느낌.....언제 끝나....지..?


역시 그때그때 설정을 잡는것보다 한번에 끝내버리자….
지난번에 수정했던 create_project.py를 열고 144번째 줄에 다음과 같이 스크립트 코드를 추가하자.


    src = “.classpath”
    if (os.path.exists(proj_path + src) == True):
       replaceString(proj_path + src, “classpath”,
         """ <classpathentry kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES">
             <classpathentry kind="src" path="cocos2dx-src">
         """)

    src = ".cproject"
    if (os.path.exists(proj_path + src) == True):
        replaceString(proj_path + src, "${ProjDirPath}/../../..", os.environ['COCOS2DX_ROOT'])
        replaceString(proj_path + src, context["src_project_name"], context["dst_project_name"])

    src = ".project"
    if (os.path.exists(proj_path + src) == True):
        replaceString(proj_path + src, "COCOS2DX/projects/" + context["src_project_name"] + "/Classes", "$%7BPARENT-1-PROJECT_LOC%7D/Classes")
        replaceString(proj_path + src, "</linkedResources>", 
            """ <link>
                    <name>cocos2dx-src</name>
                    <type>2</type>
                    <location>/Users/jhkang/sdks/cocos2d-x-2.2.0/cocos2dx/platform/android/java/src</location>
                </link> 
                <link>
                    <name>Resources</name>
                    <type>2</type>
                    <location>$%7BPARENT-1-PROJECT_LOC%7D/Resources</location>
                </link> 
            </linkedResources>""")
        replaceString(proj_path + src, "COCOS2DX/cocos2dx", os.environ['COCOS2DX_ROOT'] + "/cocos2dx")
        replaceString(proj_path + src, "COCOS2DX/extensions", os.environ['COCOS2DX_ROOT'] + "/external")
        replaceString(proj_path + src, "COCOS2DX/scripting", os.environ['COCOS2DX_ROOT'] + "/scripting")

    src = "project.properties"
    if (os.path.exists(proj_path + src) == True):
        replaceString(proj_path + src, "../../../cocos2dx", os.environ['COCOS2DX_ROOT'] + "/cocos2dx")

    os.mkdir(proj_path + '.settings')
    setting_f = file(proj_path + '.settings/org.eclipse.cdt.core.prefs', 'a+')
    setting_f.write("""
        eclipse.preferences.version=1
        environment/project/0.756827735/COCOS2DX_ROOT/delimiter=\:
        environment/project/0.756827735/COCOS2DX_ROOT/operation=append
        environment/project/0.756827735/COCOS2DX_ROOT/value=""" + os.environ['COCOS2DX_ROOT'] + 
        """
        environment/project/0.756827735/NDK_ROOT/delimiter=\:
        environment/project/0.756827735/NDK_ROOT/operation=append
        environment/project/0.756827735/NDK_ROOT/value=""" + os.environ['NDK_ROOT'] +
        """
        environment/project/0.756827735/append=true
        environment/project/0.756827735/appendContributed=true
        """)
    setting_f.close()

144번째줄 추가



스크립트에 대해서 약간 설명을 하자면…


.classpath


안드로이드 빌드시 dependency를 설정하는 부분이다.

이걸 따로 설정 안해줄시 cocos2dx의 java소스파일을 링크해주어야 한다.
하지만 이것만 해줄시 파일위치를 찾지못하므로 아래 .project내용이 있어야 한다.


.cproject


이클립스 C/C++의 프로젝트 설정파일이다.
cocos2d-x의 root위치와 프로젝트 이름을 생성하는 프로젝트 이름으로 변경해준다.


.project


이클립스 프로젝트 설정파일이다.
COCOS2DX로 되어있는 부분을 전부 cocos2d-x의 root위치로 변경해준다.
이렇게 설정하면 이클립스에서 package explorer에서 해당하는 소스들이 링크되어 확인이 가능하다.


package explorer


또한 .classpath에 설정한 cocos2dx-src도 링크로 추가하여주고, Resources파일도 추가하여준다.
Classes는 추가되어 있으면서 Resources는 왜 빠져있는지 모르겠다…. =_=;;;



.project.properties


cocos2dx의 java소스위치로 연결해주는 부분이다. cocos2d-x의 root로 위치변경해준다.



.settings 


이 부분은 없는 파일을 만들어 넣는 부분이다.
해당 내용은 C/C++빌드시에 사용할 환경변수를 지정해주는 부분이다.
NDK_ROOT와 COCOS2DX_ROOT를 등록하여준다.
(COCOS2DX_ROOT인 경우는 원래 안해도 되었으나 앞 강좌에서 build_native.sh를 수정할때 COCOS2DX_ROOT부분을 주석처리 하여 빌드시 위치를 찾지못하므로 등록해주어야 한다.)



+추가로 이전 강좌에서 IOS스크립트 추가내용

  지난 시간에 수정했던 부분 


이 부분역시 Xcode프로젝트 파일에서 cocos2dx의 위치를 잡아주는것이다.




이것으로 path설정하는부분은 끝이났다…
(기본 위치로 쓰면 간단히 생성만 하면되지만…. 원하는 위치에 프로젝트를 생성하려니 참 복잡하다….=ㅁ=;; )

귀찮은 사람들은…. 파일을 올려두니 그냥 받아서 쓰자 =_=;;


create_project.py






필자는 굳이 따라하라고는 안했다......ㅌㅌㅌ






Android 개발 준비

프로젝트를 생성하기전에 Android개발을 위해 안드로이드 SDK와 NDK와 ADT를 설치하자.
SDK와 ADT(Eclipse)는 ADT를 설치하면 같이 설치가 된다.


안드로이드 개발자 사이트에서 ADT를 받아보자. 


ADT Download


ADT Download 동의


다운받은 Zip파일의 압축을 풀면 ADT(eclipse)와 SDK가 있다.


ADT 와 SDK


ADT와 같이 안드로이드 개발자 사이트에서 NDK를 받아보자.



NDK Download 동의


필자는 r9버전을 설치했다.(r9부터 toolchain다운로드가 생겼는데 따로 설치 안해도 된다.)


전부 다운을 받고 원하는 위치에 압축을 풀었으면 환경변수를 잡아줘야 한다. 

환경변수




이제 ADT를 실행해보자.

ADT 실행


먼저 시작하기전에 안드로이드 sdk들을 설치해야 한다. sdk manager를 실행한다.

SDK Manager 실행

 

실행하면 Build를 위한 tool과(이미 설치되어있을것이다.) SDK를 설치해준다.
(최소버전을 2.2버전부터 지원할것이므로 2.2를 선택하여 설치하고 에뮬레이터를 실행하기 위하여 4.2.2버전도 설치한다.)


tool과 sdk를 설치한다




설정이 끝났으면 프로젝트를 생성해 보겠다.





프로젝트 생성

지난번 생성했던 프로젝트를 제거하고 다시 프로젝트를 생성한다. 


프로젝트 생성!


ps. 참고로 create_project.py가 있는 폴더는 다른곳으로 이동해도 정상적으로 동작한다.
단, 안에 있는 json파일도 같이 있어야 한다.





Android 프로젝트 열기 & 빌드

생성된 프로젝트를 ADT에서 연다.

File->New->Other


Android Project From Existing Code


Directory 지정


Import 완료



프로젝트가 정상적으로 열렸으면



빌드를 해보자. 


Run을 누르거나 옆에 재생표시 처럼되있는 버튼을 누른다.


빌드를 하면 콘솔창이 뜰수도 있고 아무런 변화가 없을수도 있다… 당황하지 말자… 빌드중인거다… 


아무 변화가 없다고 당황하지 말자... 열심히 빌드중이다... 


열심히 빌드중...



빌드가 완료되면 아래와 같이 실행할 Device를 선택할수 있는 창이 뜨거나 에뮬레이터가 실행되거나 컴퓨터에 연결한 안드로이드 기기에 실행이 될것이다.


Device 선택


만일 안드로이드 기기도 없고 에뮬레이터도 만든적이 없다면 에뮬레이터를 하나 만들자.
(왠만하면 기기를 사도록 하자 =_=;;; 에뮬레이터로 개발하다가 모니터를 부술지도 모른다.)



에뮬레이터는 Device선택창에서 2번째 항목을 선택후 오른쪽하단에 Manager버튼을 클릭하거나 Window->Android Virtual Device Manager를 선택한다.


Window->Android Virtual Device Manager


Android Virtual Device Manager



새로 만들어야 하므로 New를 눌러서 아래와 같이 생성해준다.
버전은 4.2.2로 해주고 Use Host GPU를 반드시 활성화 해준다.
Use Host GPU를 활성화 해야만 GL 2.0을 사용할수 있다.=ㅁ=;;
(이상하게 낮은 안드로이드 버전에서는 실행시 GLThread에서 애러가 난다 =_=;;)

Device 생성


생성했으면 AVD Manager창을 닫고 Device 선택창으로 돌아온뒤 방금 생성한 AVD를 실행해준다.


AVD 실행


AVD


AVD가 정상적으로 실행이 됬다면 Device선택창에서 선택후 실행해준다.


Select Target

Android Run!


위 처럼 나온다면 안드로이드 개발 준비가 완료된것이다.



이제 IOS개발 준비를 해보겠다.





IOS 프로젝트 열기 & 빌드

Xcode실행


IOS프로젝트 이므로….XCode를 실행해준다…..
(이…쁘다 XCode +_+)


프로젝트 불러오기


생성된 프로젝트를 불러온다.


프로젝트 빌드 타겟 설정


프로젝트 빌드 타겟을 설정해준다.
(cocos2dx의 소스도 같이 있어서 그런지 cocos2dx로 기본설정이 되어있다…. =_=;;;)


빌드!


왼쪽 상단에 재생버튼 처럼 생긴놈을 클릭하면 빌드/실행이 된다!

run


빌드가 완료되면 시뮬레이터가 실행되고 뒤집힌 Cocos2D-X이미지가 뜨고 위와 같이 실행된화면이 뜬다.


빌드가 잘되고 실행이 된다면 IOS 개발할 준비가 완료된것이다.





이제 개발을 위한 기본준비는 끝이 났고 다음시간부터 본격적으로 개발을 시작해보겠다.
그전에 Android/IOS 두가지의 플랫폼, 서로다른 개발툴을 쓰고있다. 하지만 소스는 하나로 공유하고 있다. 

XCode에서 보이는 Classes, Resources 그리고 ADT(Eclipse)에서 보이는 Classes, Resources가 서로 공유되는 파일들이다.

각각 프로젝트 폴더의 상위 폴더에 존재한다.


XCode Explorer


ADT Explorer


실제 파일



앞으로 개발시에는 공통으로 사용하는 Classes, Resources에서 작업을 하게될것이다.





개발을 하면서 천천히 정리하면서 쓰는것이라 다음이 언제가 될지는……….

하... 안드로이드 에뮬이 잘 안되서 오래걸렸다.....

저작자 표시 비영리 동일 조건 변경 허락
신고

'Dev/Info > Cocos2DX' 카테고리의 다른 글

[cocos2d-x] 2.Start  (0) 2013.10.04
[cocos2d-x] 목차  (0) 2013.09.29
[cocos2d-x] 1.Install & Setting  (0) 2013.09.29

이번 Google I/O 2013에서 Android Studio가 공개되었다.


밤새 보고.... 회사에 와서 설치를 하였는데......음?!?!

실행이 안된다.....=_=;;



그렇다 본인은... 회사에서 Ubuntu 12.04 LTS에서 안드로이드 개발을 하고있다............


으아니... 실행이 안된다니....;ㅁ;



...........

Error Log!!!!



하.....

검색해봐도 Stackoverflow에 올라온 아래 2개밖에........심지어 당시에는 답변도 없고....;ㅁ;

http://stackoverflow.com/questions/16578810/android-studio-installation-on-ubuntu-12-04-fails-to-initialize

http://stackoverflow.com/questions/16576355/plugin-com-intellij-failed-to-initialize-and-will-be-disabled-null


JAVA_HOME도 잘 설정되어 

$echo $JAVA_HOME

/usr/local/etc/dev/jdk

잘 나온다.......=_=;;;


퇴근후 검색해본결과......... 

https://code.google.com/p/android/issues/detail?id=55359


위와 같은글이..........

아.... 버그다..


왜 인지는 모르겠으나.... 댓글을 보면

#7

The workaround described in 55330 (moving JDK in /usr/java or /opt/java or /usr/lib/jvm) did the trick for me.


#8 (Project Member)

Sorry - just to clarify, this is the same bug as 55299. If you can't get to the Welcome Screen at all, then the only other possibility is to use the fix as described by comment #7 - put a JDK inside one of those folders.


If that doesn't work, please wait for the updated release due out early next week.

아.... JDK위치를 옴기란다......

더불어 다음주 일찍 업데이트 해준다니......기다리긴 개뿔 직접 해결하자...


그렇다... 망할 잉여력 덕분에 생긴 현상이였다...

apt-get을 이용하지않고 메뉴얼로 원하는 경로에 설치하던 것이 이러한 일을 만들었구나.................



해결방법은...

그래... 저 위치로 JDK를 옴기면 된다.....된다.........(는 꺼졍.......)


뭘 옴기고 있냐..... 그냥 심볼릭 링크 하나 걸자 =_=

$sudo ln -s $JAVA_HOME /usr/java


그리고 실행하면 실행된다~



아... 실행됬다...ㅠㅠ






그리고 해당 증상의 원인은.... 아래와 같은....

http://grepcode.com/file/repository.grepcode.com/java/ext/com.jetbrains/intellij-idea/12.0/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java#156


소스를 보면.................Java위치가 고정되어있다....망할....

왠지 그냥 Intellij에서도 동일한 증상이 발생할거 같다......=_=;;;;

다들 그냥 apt-get으로 java설치하나보다.....아니면 저 위치에 설치를 하고있나........;ㅁ;






저작자 표시 비영리 동일 조건 변경 허락
신고

'Dev/Info > Linux' 카테고리의 다른 글

[Linux] Android Studio 실행 오류  (2) 2013.05.20
[.vimrc] 1.Vundle설치 및 사용  (0) 2013.03.18