Notice
Recent Posts
Recent Comments
Dharma
[Emacs] 이맥스로 안드로이드 개발할 때 외부 jar 가 추가 될 때 자동 import 기능 활성화 시키는 방법 본문
저는 안드로이드를 Emacs 로 개발하고 있는 중인데요. 외부 jar 가 추가 될 때 자동으로 classpath 에 추가 하고 자동으로 import 기능을 활성화 시키는 방안을 찾는 중인데, 없더군요..
물론 Eclipse 를 사용하면서 Google AdMob SDK 같은 외부 jar를 사용하기는 쉽습니다. 외부 라이브러리로 추가해 주면 끝이기 때문입니다. 다만 CLI (Command Line Interface) 에서 Ant 를 이용해서 빌드를 할 때는 마구 마구 귀찮아집니다. 하지만 쉽게 하는 방법이 생겼더군요.
$(ANDROID_PROJECT_ROOT) 밑에 /libs 라는 디렉토리를 만들고 그 안에다가 GoogleAdMobAdsSdk-6.0.1.jar android-support-v4.jar 두개의 파일을 복사해줍니다.
$(ANDROID_PROJECT_ROOT) 밑의 ant.properties 파일을 열고 다음과 같이 추가해 줍니다.
해 주시면 성공적으로 바인딩 되는 것을 확인하실 수 있습니다.
다만 위와 같이 따로 libs 를 추가해 주면 JDE 환경에서 자동으로 classpath 뒤져서 Import 해주는 기능이 libs 에 추가된 jar 에 대해서는 동작하지 않습니다. 이럴 때를 위해서 따로 함수를 만들어 뒀습니다. (100% 제가 만든것입니다 쿨럭..)
물론 Eclipse 를 사용하면서 Google AdMob SDK 같은 외부 jar를 사용하기는 쉽습니다. 외부 라이브러리로 추가해 주면 끝이기 때문입니다. 다만 CLI (Command Line Interface) 에서 Ant 를 이용해서 빌드를 할 때는 마구 마구 귀찮아집니다. 하지만 쉽게 하는 방법이 생겼더군요.
$(ANDROID_PROJECT_ROOT) 밑에 /libs 라는 디렉토리를 만들고 그 안에다가 GoogleAdMobAdsSdk-6.0.1.jar android-support-v4.jar 두개의 파일을 복사해줍니다.
$(ANDROID_PROJECT_ROOT) 밑의 ant.properties 파일을 열고 다음과 같이 추가해 줍니다.
jar.libs.dir=libs
이제
$ ant clean && ant debug
해 주시면 성공적으로 바인딩 되는 것을 확인하실 수 있습니다.
다만 위와 같이 따로 libs 를 추가해 주면 JDE 환경에서 자동으로 classpath 뒤져서 Import 해주는 기능이 libs 에 추가된 jar 에 대해서는 동작하지 않습니다. 이럴 때를 위해서 따로 함수를 만들어 뒀습니다. (100% 제가 만든것입니다 쿨럭..)
(defun android-mode-my-hook ()
(progn
(and (file-exists-p
(concat (android-root) "/libs"))
(setq jde-global-classpath
(append jde-global-classpath
(directory-files
(concat (android-root) "/libs")
t "jar"))))
))
(add-hook 'android-mode-hook 'android-mode-my-hook)
다음과 같이 만들어 주면 됩니다. 저는 java 설정만 따로 모아놓고 쓰지만 그렇지 않으신 분들은 .emacs 파일 구석에 적어두시면 될 것입니다. 물론 jdee 와 android-mode 설정 뒤에 적어주셔야 할 것입니다. jde-global-classpath 는 jdee 를 추가 해줘야 생기는 변수고 android-root 는 안드로이드 프로젝트의 루트를 찾아주는 편리한 함수인데 android-mode 를 추가해줘야만 쓸 수가 있습니다.
점점 lisp 으로 코딩하는게 재밌어 지기 시작합니다. ㅎㅎ