[NDK build] Android.mk Application.mk

Android.mk

Application.mk 


1. Android.mk
 - 아래와 같이 할 경우에는 add.a file 을 만든다.
 - 두번째 lib를 생성할 때 static library 를 생성시, add.a library 를 추가하여서 Jnicalc.so file 을 생성함 
 - 장점 : library 를 생성할 때 first library 를 생성하고, second library 를 생성한다. 
            ( 추가되는 jni 부분은 second library 로 만들고나서, 아래부분만 build 시키도록한다. 시간 절약 효과 )

LOCAL_PATH := $(call my-dir)


# make first lib --------------------------------------------

include $(CLEAR_VARS)

LOCAL_MODULE := add

LOCAL_SRC_FILES:= add.c

include $(BUILD_STATIC_LIBRARY)


# make second lib --------------------------------------------

include $(CLEAR_VARS)

LOCAL_MODULE := Jnicalc

LOCAL_SRC_FILE := Jnicalc.c

LOCAL_STATIC_LIBRARIES := add

include $(BUILD_SHARED_LIBRARY)

 
 
2. Android.mk
- 아래와 같은 경우는 Jnicalc.so file을 생성한다. 
- 단점 : library 에 추가되는 soruce file 이 많을 경우에는 build time 이 오래 걸린다. 

LOCAL_PATH := $(call my-dir)


# make first lib --------------------------------------------

include $(CLEAR_VARS)

LOCAL_MODULE := Jnicalc

LOCAL_SRC_FILES:= add.c \
                         mul.c \ 
                         Jnicalc.c 

include $(BUILD_SHARED_LIBRARY)

 
3. Android.mk  - 주의 사항 편
 - 1번을 build 하였을 경우! 문제점 
 - "  "  <-- 공백이 들어갈 경우에 아래와 같이 build 가 되고 안되고의 차이점이 생긴다....( 완전 할말 없음..)
 - 공백으로 인하여 아래처럼 build 가 되지 않는 경우이다. script file ...'공백' 으로 3일을..ㅡㅡ^

 - Error의 종류(발생원인)는 아래 와 같다. 아래와 같이 나는 경우는 여러가지가 있다. 
  - 첫번째 , 패키지 name 의 잘못 쓰는 경우
    Java_package_className_Method() 형식으로 이름이 지정되어주어야 하는데, 찾지를 못하는 경우

     package vbflash.net
     
NDKtest
     
add1()   일 경우에는 
    
Java_vbflash_net_NDKtest_add1()   이라고 명시 되어야 한다. 

  - 두번째, parameter 에 val 변수가 이름이 지정되지 않거나(build 시 에러남) 
  

Error #1
No implementation found for native
Lvr/knu/ac/kr/AndroidJNItestActivity;.add (II)

Error #2
JNI (Java Native Interface): Exception in thread “main” java.lang.UnsatisfiedLinkError: Can’t find dependent libraries 




주의사항 이런건 요까지 정리! 끝 으로 하고

Android.mk 파일의 내부에 대해서 간략히 정리해 보도록 하자.
단 필요한 부분만 정리하도록 하겠음. 그리고 sample 가 필요할지도...!? 

'Mobile > android' 카테고리의 다른 글

[Android] DownloadManager 를 이용한 파일 다운로드하기  (3) 2011.12.16
[android sensor] TYPE_ROTATION_VECTOR  (0) 2011.12.08
....3D engine(Irrlicht) on android  (0) 2011.11.13
Google Android Library  (0) 2011.11.10
22  (0) 2011.10.27

댓글

Designed by JB FACTORY