본문 바로가기

구글과인터넷/안드로이드

안드로이드 이클립스 CDT 에서 NDK와 jni 연동 구현

출처: 여기

우선 필요한 cygwin 와 java sdk, android sdk or ndk 설정 셋팅은 아래 링크로 모두 적용이 되어 있어야한다.

http://202psj.tistory.com/462


기본 상태에서 이클립스 jni 연동 셋팅

http://202psj.tistory.com/464


//////////////////////////////////////////////////////////////////////////////////////////////////


안드로이드 NDK 프로그래밍 - 소스 참조


Store_Part3-1.zip


이소스는 설정이 모두 되있기 때문에 convert to a C/C++ 을 해줄 필요가 없다.

그리고 위압축 파일 프로젝트 설정, 또는 새로운 프로젝트 설정을 보면서 

아래 설명과 비교해가며 빌드하면 될 것 이다.

위의 압축파일에 jni 프로젝트 셋팅이 되어 있으니 추가로 설명을 적어주겠다.


기존 jni 연동 프로젝트에서 (참조: http://202psj.tistory.com/464)나 새로 만든 jni  프로젝트에서

CDT를 이용하여 프로젝트를 설정하고 싶은경우






file -> new -> other 메뉴를 연다





C/C++ 아래에서 Convert to a C/C++ Project 를 선택후 






자신의 해당 프로젝트를 체크하고 'Makefile project' 그리고 Other Toolchain 를 선택하고 finish를 누른다.






자신의 프로젝트에 마우스 오른쪽을 클릭하고 Properties(속성)을 눌러 준다.






C/C++ Build 에서

Builder Setting 에서 

Build command 란에 체크 박스를 해지하고 'ndk-build' 를 쳐준다. (windows에서 'ndk-build.com' 을 쳐주어야한다.)







그리고 2번째 탭 Behaviour 에서 Build on resource save 를 체크 해주고 값으로 'all'을 넣어준다.

그리고 아래 build 란에 또 체크해주고 값 'all'을 넣어준다. 또 Clean란에도 체크해주고 값 'clean' 을 넣어준다.








3번째 탭 Refresh Policy 자동으로 Resoureces 안에 값이 들어가 있다.





그리고 왼쪽 트리 부분에 Builders 으로 이동하면 'CDT Builder'를 'Android Package Builder' 보다 위로 가게 

설정해둔다.






C/C++ General 부분에서 Paths and Symbols 에서 'add..' 버튼을 눌러서 위 그림처럼 2개를 include 해준다.


첫번쨰
${env_var:ANDROID_NDK}/platforms/android-9/arch-arm/usr/include

두번쨰
${env_var:ANDROID_NDK}/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/lib/gcc/arm-linux-androideabi/4.4.3/include

세번째 (자동으로 등록되거나 적어줌)
${env_var:ANDROID_NDK}/sources/android/native_app_glue

추가설명------------------------------------------------------------------------------------------
ANDROID_NDK <- 부분의 설졍 방법은 ANDROID NDK 설치 경로를 윈도우 환경변수로 등록한 것 이다.
자세한 정보는 http://202psj.tistory.com/462
'두번쨰'나 첫번째 에서 제대로 경로명을 입력하지 않으면 #include <stdarg.h> 이나 #include "stdio.h" 이런 파일을
include 할때 찾을수 없다고 나오므로 꼼꼼히 맞는지 살펴보자.


위의 설정을 한후 #include <jni.h> 부분에 Ctrl 키를 누룬후 마우스를 클릭하면 해당 파일로 이동하는 장면을 볼수 있다.










설정되어 있는 프로젝트를 import 할때도 설정이 각기 틀릴수도 있으니 항시 위에 설정들을 꼼꼼히 살펴 
보면서 빌드를 해주어야 한다.