NDK 1.6 설치해서 테스트 해보고 있습니다.


NDK안에 내장된 hello-jni 컴파일하고 테스트 해보면 잘 됩니다.


새로운 안드로이드 프로젝트 생성하고 hello-jni.c 카피해서 컴파일 했습니다.

app/nnn/project/jni/Androd.mk 에서 라이브러 이름은 nnn으로 변경하고 


==================================================================

Android.mk 파일내용입니다.

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := nnn
LOCAL_SRC_FILES := hello-jni.c
include $(BUILD_SHARED_LIBRARY)


====================================================================


파일구조 

app/nnn/Application.mk

app/nnn/project/jni/hello-jni.c

app/nnn/project/jni/Androd.mk


컴파일 잘 되고 so 라이브러리도 잘생깁니다.

java 소스에도 hello-jni에서 콜하는거와 똑같이 했는데 실행할 때 예기치 않은 문제로 중지되었다고 하면서 죽네요.

조언부탁드립니다.



APP 이름은 nnn입니다.


root@linuxs-desktop:~/Project/android/android-ndk-1.6_r1# make APP=nnn
Android NDK: Building for application 'nnn'   
Compile thumb  : nnn <= apps/nnn/project/jni/hello-jni.c
SharedLibrary  : libnnn.so
Install        : libnnn.so => apps/nnn/project/libs/armeabi


자바소스


package nnn.com;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class nnn extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        Log.i("NDK",  stringFromJNI() );

        setContentView(R.layout.main);
    }
    public native String  stringFromJNI();

    public native String  unimplementedStringFromJNI();

    static {
        System.loadLibrary("nnn");
    }
}