위 링크로 가시면 문자열 값을 출력하는 것 까지 자세한 정보가 있습니다.
그대로 따라하시면 되는데요.
사이사이에 제가 겪은 문제점들을 적어 놀까 합니다.
1. ../ndk-build 명령어를 쳤더니
위와 같은 에러가 났을 경우.
혹시, android ndk 가 Program files 밑이나 띄어쓰기가 있는 이름 폴더의 하위 폴더 일 경우 인지 확인해보세요.
절대! cygwin 설치에 문제가 아닙니다.
가장 안전한 방법!
c:\android-ndk-xxxx로 해놓으시는게 가장 좋을 듯!
2. cygwin 설치 시, ftp://ftp.kaist.ac.kr이 안보일 경우
그냥 아무거나 하셔도 됩니다. 한국 사이트라 다운로드 속도가 빠른 것 뿐! ㅋ
3. .so파일까지 만들어지고 실행을 했는데!!!
05-11 15:57:23.210: ERROR/AndroidRuntime(4166): java.lang.UnsatisfiedLinkError: getMsgFromJni
05-11 15:57:23.210: ERROR/AndroidRuntime(4166): at com.motiveflux.ndk.hello.NdkHello.getMsgFromJni(Native Method)
05-11 15:57:23.210: ERROR/AndroidRuntime(4166): at com.motiveflux.ndk.hello.NdkHelloActivity.onCreate(NdkHelloActivity.java:18)
05-11 15:57:23.210: ERROR/AndroidRuntime(4166): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-11 15:57:23.210: ERROR/AndroidRuntime(4166): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
05-11 15:57:23.210: ERROR/AndroidRuntime(4166): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
05-11 15:57:23.210: ERROR/AndroidRuntime(4166): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
05-11 15:57:23.210: ERROR/AndroidRuntime(4166): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
05-11 15:57:23.210: ERROR/AndroidRuntime(4166): at android.os.Handler.dispatchMessage(Handler.java:99)
05-11 15:57:23.210: ERROR/AndroidRuntime(4166): at android.os.Looper.loop(Looper.java:123)
05-11 15:57:23.210: ERROR/AndroidRuntime(4166): at android.app.ActivityThread.main(ActivityThread.java:3683)
05-11 15:57:23.210: ERROR/AndroidRuntime(4166): at java.lang.reflect.Method.invokeNative(Native Method)
05-11 15:57:23.210: ERROR/AndroidRuntime(4166): at java.lang.reflect.Method.invoke(Method.java:507)
05-11 15:57:23.210: ERROR/AndroidRuntime(4166): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-11 15:57:23.210: ERROR/AndroidRuntime(4166): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-11 15:57:23.210: ERROR/AndroidRuntime(4166): at dalvik.system.NativeStart.main(Native Method)
위와 같은 에러가 발생하고 실행이 안될 경우!!!!
1. 함수에 패키지 명을 제대로 되어 있는지 확인해 보세요!
package : android.test.ndk.hello
NdkHello.c 파일 :
jstring Java_android_test_ndk_hello_NdkHello_getMsgFromJni(JNIEnv *env, jobject thiz)
NdkHello.h 파일 :
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := HelloLibrary
LOCAL_SRC_FILES := NdkHello.c
include $(BUILD_SHARED_LIBRARY)
그럼 제 경험담을 써 놓았습니다.
좋은 참고사항이 됐으면 좋겠습니다.^^
'나의 플랫폼 > 안드로이드' 카테고리의 다른 글
[Android] 폴더명 관리 (0) | 2011.06.13 |
---|---|
[ Android ] 비트맵에 이미지나 뭔가를 그릴 때 뜨는 에러! (0) | 2011.06.03 |
[Android] Live Wallpaper 미리보기인지 아닌지 확인 (0) | 2011.05.04 |
[Android] 배경화면에 이미지를 표현할 때 참고사항 (0) | 2011.05.04 |
[Android] 진저브레드도... Opengl은 16비트컬러 (0) | 2011.04.23 |