[NDK build] Android.mk Application.mk
- Mobile/android
- 2011. 12. 7.
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 |