메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

Love2d의 안드로이드 포트는 알파 단계입니다.

차차 개선되어 나가긴 하겠지만 아직 불안정한 부분이 많으며, 일어날 수 있는 오작동과 그로 인한 결과는 일절 책임지지 않습니다.

 

이 문서는 Windows 사용자 기준입니다.

Linux나 Mac을 사용할 정도의 내공이 있으신 분들은 자신의 OS에 무언가가 필요할 경우 구글 등으로 검색해서 지혜를 찾아내는 혜안이 있으실 것이므로 

Windows 사용자 기준으로 문서를 작성합니다. 

 

0. 앞서

Love2d 안드로이드를 빌드하기 위해서는 PC와는 또 다른 개발환경이 필요하다.

PC처럼 그냥 exe 파일이랑 합체! 하면 좋겠지만 안드로이드는 그렇게 되지 않는다.

그래서 소스 코드를 받아서 빌드해야 한다.

안드로이드 개발에 대해 하나도 몰라도 상관없다.(나도 모른다.) 남이 만든거 컴파일만 하면 되는 거니까.

 

그냥 .love 파일을 핸드폰에서 돌리고 싶다면 그냥 최신 버전의 apk 파일을 받아 설치하면 된다.

( https://bitbucket.org/MartinFelis/love-android-sdl2/downloads )

그러나 '나는 내 게임으로 apk를 만들어서 올릴거야!' 라는 야망을 가지신 분들은 게임 이름, 버전 정보, 아이콘 등을 바꿔야 하므로 빌드를 새로 하고

약간의 수정 사항을 거쳐야 한다.

 

1.개발 환경 구축

일단 빌드하기 위한 개발 환경을 구축한다.

그냥 안드로이드 개발환경이라 cocos2d-x 등과 그닥 차이 없다.

만일 이미 상기의 개발환경을 갖추고 있다면 아래의 것들이 설치되어 있는지, 설정이 제대로 되어 있는지 정도만 확인하면 충분하겠지만

그런거 없는 사람들은 따라하면서 개발환경을 구축하자.

 

1-1. Java SDK(JDK) 설치

http://www.oracle.com/technetwork/java/javase/downloads/index.html

여기에서 자기 버전에 맞는거 찾아 다운로드해서 설치하면 된다.

약관에 동의해야 다운로드 받을 수 있고, 그 다음은 다음다음 넥스트 OK의 연속.

 

1-2. Ant 설치

http://ant.apache.org/bindownload.cgi

Current Release of Ant  부분으로 가서(Ctrl+F로 찾으면 됨) .zip archive 를 받아준다.

( http://apache.mirror.cdnetworks.com//ant/binaries/apache-ant-1.9.4-bin.zip )

다운로드받아서 압축파일을 C:\ant 경로에 풀어준다.

당연히 없을테니 만든다.

 

1-3. Android SDK 설치

http://developer.android.com/sdk/index.html

우리는 안드로이드 스튜디오 그런거 필요 없다. 따라서 아래쪽의 SDK Tools Only 부분으로 가서 받는다.  

( http://dl.google.com/android/installer_r24.0.1-windows.exe )

설치 다음다음.

 

1-3-1. Android SDK 패키지 설치

공식 문서에서는 이렇게 설치하라고 한다.

    Android SDK Platform-tools API 19.0.1
    Android SDK Build-Tools API 19.0.1 (or API 19.0.2, it doesn't matter)
    SDK Platform Android 4.4.2 API 19
    ARM EABI v7a System Image API 19
    Google APIs ARM System Image API 19
    Sources for Android SDK API 19
    Android Support Library
    Google USB driver

 

가급적 위의 버전으로 설치하자.

Android SDK Platform-tools 등의 경우 19.0.1 버전이 없을 수 있는데 그럼 그냥 요령껏 19 설치하던지, 최신 버전 설치하던지.

 

1-4. Android NDK 설치

r10 이상의 버전에서는 빌드 오류가 발생하니 r9d 버전을 설치하자.

http://dl.google.com/android/ndk/android-ndk-r9d-windows-x86_64.zip (64비트 사용자는 이쪽) 

http://dl.google.com/android/ndk/android-ndk-r9d-windows-x86.zip (32비트 사용자는 이쪽)

자기 OS에 맞는 것 다운받아서 c:\ndk에 압축 해제하자.

 

고생했다. 이제 개발도구 설치는 끝났다.

 

2. 소스코드 다운로드받기

git따위 쓰지 않는다, 나는 야매니까!

다운로드 링크 https://bitbucket.org/MartinFelis/love-android-sdl2/downloads 로 가면 Download repository가 있다. 받아준다.

c:\love_android에 압축을 풀었다.

 

3. 환경변수 설정

윈도우키+Pause를 누르거나 내컴퓨터-우클릭-속성 누른다.

좌측의 고급 시스템 설정을 눌러준다.

고급 탭으로 가서 맨 아래의 환경변수.. 버튼을 누른다.

시스템 변수(S)에서 새로만들기를 눌러준다.

아래의 값들을 추가하자.

 

이름: ANT_HOME

값: C:\ant

 

이름: JAVA_HOME

값: C:\Program Files\Java\jdk1.8.0_25 (JDK 버전이 다르면 경로가 달라질 수 있으니 내가 어디에다 설치했는지 한번 확인해보자.)

 

이름: ANDROID_SDK

값: C:\Program Files\Android\android-sdk (설치 경로가 여기가 맞는지 확인해보자.)

 

이름: ANDROID_HOME

값: ANDROID_SDK랑 똑같음.

 

이름: ANDROID_NDK

값: C:\ndk

 

이름: ANDROID_SWT

값: %ANDROID_SDK%\tools\lib\x86 (64비트 사용자는 %ANDROID_SDK%\tools\lib\x86_64 를 입력.)

 

그리고 Path를 선택, 편집 버튼을 누른 뒤 아래의 값을 덧붙인다.

;%ANT_HOME%\bin;%ANDROID_SDK%\tools;%ANDROID_NDK%

 

4. ndk-build 실행

명령 프롬포트를 실행한 뒤 cd c:\love_android 명령을 실행하여 소스를 받아놓은 곳으로 간다.

이후 ndk-build 실행.

멀티코어라면 좀 더 효율적인 작업을 위해 --jobs 명령어를 사용할 수 있다.

ndk-build --jobs 3 식으로. 숫자는 코어수 +1을 의미한다.

듀얼코어라면 코어 2개+1이니까 3이고, 쿼드코어라면 코어 4개+1이니까 5 넣어주면 될 것이다.

싱글코어는 그런거 없다. 그냥 ndk-build.

시간이 좀 걸리고, 기다리면 된다. 

 

5. ant 실행

ant debug 명령어를 실행한다.

모든 것이 성공적이라면 c:\love_android\bin\love_android_sdl2-debug.apk 가 생겼을 것이다.

빌드 성공!

 

만약 아이콘을 바꾸거나 AndroidManifest.xml을 수정하게 된다면 위의 과정을 모두 거칠 필요는 없고

그냥 ant debug만 다시 해주면 된다.

 

구글 Play Store에 게임을 내기 위해서는 이 apk 파일에 서명을 해야 하는데 (keystore)

이에 대한 내용은 http://blog.naver.com/norubal29a/22020266816 링크를 참조하길 바란다.

 

다음 글에서는 소스를 수정하여 엔진이 아닌 자신의 게임을 apk로 만드는 방법에 대해 다루어 보겠다. 

조회 수 :
572
등록일 :
2014.12.15
00:59:56 (*.209.38.113)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=797992
List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜 최근 수정일
185 자동화된 Lua 스크립트의 문서화 - LDoc 노루발 43229   2021-01-11 2021-01-11 11:53
다운로드 https://github.com/lunarmodules/LDoc penlight 설치가 필요 luarocks install penlight 프로젝트가 있는 폴더에서 아래의 명령행을 실행 lua /path/to/ldoc/ldoc.lua $* https://stevedonovan.github.io/ldoc/manual/doc.md.html 문서 코멘트라는걸...  
184 VC++ 2008 Express Edition에서 문D라이브 링크 [2] A.미스릴 13090   2008-04-17 2014-04-15 17:28
SDK도 최신버전으로 깔아주었고 도구 설정도 적절하게 했습니다 모든 셋팅이 완료되고 링크를 해보니까 아래와 같은 문장이 쭉쭉나오는군요 warning은 굉장히 많이 나오는데 실제로 컴파일을 막아버린 부분은 LINK : fatal error LNK1104: 'LIBC.lib' 파일을 ...  
183 cocos2d-x 터치와 업데이트 활성화 시키기 똥똥배 10656   2011-10-27 2013-09-13 07:29
cocos2d와 달리, 윈도우 환경에서 cocos2d-x 프로그램을 짜보면 상속을 받았음에도 update, ccTouchesBegan 등의 함수가 작동되지 않음을 알 수 있다. 터치 해결법: OnEnter와 OnExit를 추가하고, 다음 같이 적어준다. void HelloWorld::onEnter() { //단일 ...  
182 문D 질문 #2 [1] A.미스릴 8797   2008-06-01 2009-01-07 22:05
이거 도배하는거같은 마음이 드네여 ㅈㅅ 제가 대화창을 다뤄봤는데여 CTextDlg textdialog(50); CTextDlg * pt_textdialog(&textdialog); pt_textdialog->SetDlg(100, 100, 200, 200); pt_textdialog->SetColor(255,255,0); pt_textdialog->SetDlgBox("_d...  
181 MFC 더블 버퍼링 질문 [2] A.미스릴 6603   2008-06-13 2013-11-23 08:43
void CPingpongView::OnDraw(CDC* pDC) { CPingpongDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here // 현재 창 크기와 같은 DC를 만듬 CRect rect; GetClientRect(&rect); int int_client_width = (rect.ri...  
180 문D라이브로 만드는 더블드래곤.. 질문입니다 [4] 하와이안 5550   2009-01-15 2009-01-21 00:16
예전 다른 프로그래밍 언어는 조금 써본 적 있는데 C++은 거의 없어서 헤매고 있습니다. 문D라이브 더블드래곤 강좌에 나온 데로 VC++ 2005 express edition으로 깔고 링크되어 있는 directx sdk 깔고 VC디렉토리에 SDK 링크도 추가해서 moondlib 실행하고 빌...  
179 임의의 점이 다각형 내부에 있는지 검사하는 함수 똥똥배 5358   2008-04-14 2008-04-14 02:21
수학도 기하학도 허접한 제가 짠 거라서 허접하지만 넓은 아량으로 봐 주십시오. struct Point { double x; double y; }; bool LineIn(Point p1, Point p2, Point p3) { double top, bottom; //위 아래 범위 결정 if(p1.y < p2.y) { top = p1.y; bottom = p2.y...  
178 문D라이브로 더블드래곤을 만들자(11) file 똥똥배 4647   2008-05-17 2008-05-17 20:24
 
177 문D라이브로 더블드래곤을 만들자(1) [2] file 똥똥배 4479   2008-04-16 2008-04-17 08:29
 
176 씨언어 질문 (내일 시험 ㄷㄷ) [1] 쿠로쇼우 4332   2008-06-17 2008-06-17 22:10
1 121 12321 1234321 123454321 부탁 ㄷㄷ  
175 문D라이브도 더블버퍼링이 필요한가요? [3] A.미스릴 4223   2008-06-28 2008-06-29 07:06
보니까 backbuffer에 그림을 붙이던데 backbuffer가 배경 버퍼니까 바로 화면에 출력되는건가요? 그런데 그걸 직접 쓰면 MFC의 DC처럼 깜박임과 속도저하가 오는건 아니죠?ㅡ,.ㅡ; 추가로 LoadPicture로 불러온 그림을 다시 안불러온것처럼 되돌리는건 없나요?  
174 문D라이브로 더블드래곤을 만들자(10) file 똥똥배 4065   2008-05-17 2008-05-17 03:07
 
173 #define에 대해 [1] A.미스릴 4061   2008-05-19 2008-05-19 18:57
#define을 너무 많이 쓰면 코드에 불안정화가 온다는데 사실인가여? 그러면 불안정화를 막으러면 어떻게 해야하나여 아니면 enum이나 const를 써야 하나...  
172 클레스들을 담은 헤더들의 혼란 [4] A.미스릴 3892   2008-06-21 2013-11-23 08:43
xxx.h파일 //xxx.h class xxx { ... 어떤 멤버함수 (yyy 뭐시기); ... } yyy.h파일 //yyy.h class yyy { ... 어떤 멤버함수 (xxx 뭐시기); ... } 이 두 클래스의 헤더 파일이 있으면 #include "xxx.h"와 #include "yyy.h"를 어떤 순서로 배치해야 할지 혼란스...  
171 srand에 관해서 [4] A.미스릴 3868   2008-07-15 2008-07-18 05:49
제가 알고 있는 난수의 사용방법은 srand( (unsigned int) time( NULL ) ); 로 srand를 지정하고 rand()를 해서 랜덤난수를 가져오는 것인데 함수값이 어쩌고 하는 원리더군요 그런데 원리를 생각해 보니 이게 정말 난수의 역할을 해낼수 있을까요?ㅡ,.ㅡ; 애...  
170 문D 질문 [5] A.미스릴 3847   2008-05-26 2008-06-12 18:55
1.글자, 문장을 화면상에 출력하는 방법 2.숫자를 스트링으로 형변환할떄 아스키 코드가 아니라 숫자가 옮겨가게 하는법 3.사각형, 원 등을 출력하는 방법(Rectangle 함수같은거 없나여)  
169 흥크립트에 궁금한점 [4] 상상악수 3835   2008-08-21 2008-08-27 04:13
tile1에서 앞쪽에 18칸말고는 사용할수없는 칸인가요? 그림을 그리면 맵에디터에서는 잘나오는데 게임에서는 까만색에 움직일수없는..  
168 C++ 질문 [1] A.미스릴 3818   2008-12-21 2008-12-21 19:24
str_list1[loop_v]가 존재하면 true, 안 존재하면 false 이런 감별이 필요한데 CString str_list1[] = {"","","웹디자인","3D그래픽스"}; int loop_v = 0; while(str_list1[loop_v]) { this->m_ctrl_combobox1.AddString(str_list1[loop_v]); this->m_ctrl_lis...  
167 TinyXML의 한계 [2] 똥똥배 3759   2011-12-11 2013-11-23 06:30
내가 TinyXML을 쓴 것은 이름 그대로 tiny하기 때문이었다. 쓸데없는 기능없이 담백하게 읽고 쓰고 땡. 하지만 써 본 사람들은 잘 알겠지만 유니코드를 지원하지 않는다. 일단 유니코드를 지원하지 않더라도 유니코드(UTF-8)로 된 문서를 읽을 수는 있다. 한글...  
166 문D라이브 2008년 5월 19일 버전 [2] 혼돈 3747   2008-06-02 2015-12-09 08:06
휴가루 웍휴2를 개발하면서 조금씩 수정 중이지만, 미스릴님의 요청이 있어서 올립니다. 대화창에 관련되서 완성되었다는 것과 흥크립트 부분이 많이 변했다는 것이 주요 변경점입니다. 대화창의 경우 기본은 대화창이 없는 상태로 MakeDlgBox를 사용하면 크기...