64비트 우분투에서 buildozer 이용해서 Kivy 프로그램의 안드로이드 패키지(.apk 파일)를 만듭시다.
(팁)
설치할 것이 많아요. 뭐 하나 설치할 때마다 yes/no 자꾸 물어보는데 귀찮으니까 설치 명령어 실행 직후에는 엔터를 꾹 눌러 주세요. 그러면 입력 버퍼에 엔터 입력들이 들어차서 y/n 키 입력 받는 부분을 자동으로 쭉 넘어갑니다.
에러 뜨면 프로그램이 시키는대로 하거나 오류 메시지를 복사해서 구글에 검색하면 거진 해결방법이 있습니다. 다만 유닉스(리눅스) 기본 명령어 정도는 알아야겠죠.
우선 리눅스 패키지들을 괜히 한 번 업데이트 해 줍니다.
$ sudo apt update
$ sudo apt upgrade
아나콘다 파이썬을 설치합니다. 아나콘다는 최신 버전의 파이썬과 함께 널리 쓰이는 파이썬 모듈들을 기본 제공해서 복잡한 파이썬 패키지 관리를 쉽게 해 줍니다.
- https://www.continuum.io/downloads에서 Anaconda3 설치 파일을 다운로드 받아 실행합니다.
- ~/.bashrc 파일을 열어서 마지막 라인에 PATH=/user/<<사용자이름>>/Anaconda3/bin:$PATH 추가합니다.
- 터미널을 껐다 켭니다.
$ sudo wget https://repo.continuum.io/archive/Anaconda3-4.3.1-Linux-x86_64.sh
$ sudo bash Anaconda3-4.3.1-Linux-x86_64.sh
$ echo 'PATH=/user/<<사용자이름>>/Anaconda3/bin:$PATH' | sudo tee -a ~/.bashrc
$ exit
빌도저가 안드로이드 패키지를 빌드하기 위해서는 자바 컴파일러가 필요하기 때문에 JDK를 설치합니다. JDK 설치 방법입니다. (설치 중간에 무시무시한 화면으로 넘어가면서 뭐라고 뜨면 yes 선택해 주세요.) 1
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt update
$ sudo apt install oracle-java8-installer
그밖에 빌도저가 좋아하는 패키지들을 깔아 줍니다. 없으면 빌도저 돌릴 때 에러 납니다.
$ sudo apt install libglu1-mesa-dev freeglut3-dev mesa-common-dev zlib1g-dev
이런 것들도 설치합니다. 역시 빌도저가 좋아하는 패키지들입니다. 없으면 에러까지는 아니고 Warning 일으킵니다.
$ sudo apt install autoconf automake libtool
pip는 아나콘다 같은 파이썬 패키지 관리 툴입니다. pip를 이용해서 pip 자신, kivy, bulidozer를 순서대로 설치합니다. sudo pip 하지 마세요. 이 pip 명령어들은 sudo로 실행하면 잔소리하더군요.
$ sudo apt install python-pip
$ pip install --upgrade pip
$ pip install --upgrade kivy
$ pip install --upgrade buildozer
이제 빌도저 설치법 문서에 나와 있는 대로 따라합니다. Ubuntu 16.04 (64bit)에서 명령어는 아래와 같습니다.
$ sudo pip install --upgrade cython==0.21
$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install build-essential ccache git libncurses5:i386 libstdc++6:i386 libgtk2.0-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 python2.7 python2.7-dev openjdk-8-jdk unzip zlib1g-dev zlib1g:i386
설치는 끝입니다. Kivy 프로그램의 프로젝트 폴더를 만들어 봅시다.
$ mkdir hi
$ cd hi
$ touch main.py
$ sudo nano main.py
main.py에 Kivy 프로그램의 소스코드를 입력합니다.
from kivy.app import App
from kivy.uix.button import Button
class Hello(App):
def build(self):
btn = Button(text='Hello World')
return btn
Hello().run()
마지막으로 Kivy 프로젝트 폴더 안에서 빌도저를 실행합니다. 참고로 buildozer는 sudo로 실행하면 안 돼요. 잔소리합니다.
$ buildozer init
$ buildozer android debug
buildozer init 명령어를 실행시킨 폴더 안에 buildozer.spec이라는 빌도저 빌드 설정 파일이 생깁니다. 이 파일의 내용을 편집해서 빌드할 프로그램의 이름, 버전, 의존관계 따위를 설정할 수 있습니다.
buildozer init을 수행한 뒤에 buildozer android debug의 명령어로 APK 컴파일합니다. 이 때 필요한 안드로이드 SDK나 JDK를 자동으로 설치하기 때문에 처음으로 컴파일하는 중이라면 오래 걸릴 수 있습니다.
여기에서 hostpython 오류가 발생하면 다음 게시물을 참고해 주세요.
2017/05/17 - [Methods] - buildozer 빌드시 hostpython 오류
그렇게 해서 빌드가 성공하면 bin 폴더에 결과물인 .apk 파일이 생성되어 있는 것을 확인할 수 있습니다.
- https://askubuntu.com/questions/673633/installing-java-on-ubuntu [본문으로]
'Methods' 카테고리의 다른 글
우분투 16.04 LTS에서 안드로이드 스튜디오 설치 (0) | 2017.06.09 |
---|---|
TensorFlow 설치하기 (0) | 2017.06.04 |
라즈베리파이3에 6lbr 설치하기 (0) | 2017.05.25 |
라즈베리파이3에 ipTIME N150UA 드라이버 설치하기 (0) | 2017.05.25 |
라즈베리파이3에서 리눅스 커널 빌드하기: TL-WN725 무선랜카드 디바이스 드라이버 설치 (1) | 2017.05.25 |
buildozer 빌드시 hostpython 오류 (0) | 2017.05.17 |
웹페이지의 우클릭/드래그 방지를 해제하는 최고의 방법 (1) | 2017.05.17 |
알기 쉬운 minicom 사용법 (4) | 2017.05.10 |
실수로 삭제한 깃허브 저장소 복구하기 (0) | 2017.04.28 |
티스토리 각주 스타일 꾸미기 (2) | 2017.04.24 |