안녕하십니까? 하나 문의 좀 드릴까 합니다.

jni로 만든 .so 파일을 콜을 해서 사용하려고 하는데요.

jni 프로젝트로 만들었던데에서는 정상적으로 .so로 잘 로딩하고 콜도 해서 정상적으로 작동을 합니다.

아 한데.. 샘플 프로그램을 하나 만들어서 이제 jni로 만든 .so 파일을 콜해서 사용하려고 하는데요.

다른 샘플 프로그램에서는 jni로 만들어서 테스트했던 샘플프로그램과 같이 작동을 하지않습니다.

샘플 부분은 동일하며  libs\armeabi\xx.so 파일, 폴더 모두 복사해서 두번째 샘플 프로그램에 복사해서 넣어줬습니다.

1) 샘플 프로그램 JNI 생성 프로젝트 + JNI생성(.so)파일 콜 테스트 프로그램

2) 샘플 프로그램 .so를 호출해볼려고 따로 만든 프로그램..

1번째꺼나 2번째꺼나 소스 부분은 동일한데요.

1번째꺼만 돼고 2번째꺼가 안되는 사유를 모르겠네요...

1번째 프로젝트에는 Application.mk 라는 파일이 project 위에 하나 있어서..

APP_PROJECT_PATH := $(call my-dir)/project
APP_MODULES      := libxxxx

식으로 해당 라이브러리를 표시를 해주는데요.. 틀린건 이 차이밖에 없는거 같은데요...

다른분들의 고견 좀 부탁드리겠습니다.

저와 같이 JNI 프로젝트로 .so 파일을 만드신 후.. 그 .so파일을 다른 프로젝트에서..

사용하고자 하실때 다른 부분이 필요한지요.. 전.. 

1) 사용하고자 하는 프로그램에 libs\armeabi\xx.so 파일, 폴더 모두 복사 해줌
2) 함수 선언, .so 선언
    private native int 함수(String data);
   
    static {
        try {
            Log.d("log", "[java] == Trying to load lib.so ==");
            System.loadLibrary("starpos");
        } catch (UnsatisfiedLinkError ule) {
            Log.d("starpos-jni_log", "[java] WARNING: Could not load lib.so => " + ule);
        }
    }

3) 함수 사용..
     test myJNI = new test();
     result_code = myJNI.함수(data);

1번과 2번 3번만 하면 따로 so파일 사용할때 다른건 필요없다고 검색을 통해 봤는데요..

희한하게 JNI 프로젝트에서 만든곳에서 테스트해보면 잘돼구요. .so파일 복사해서 다른프로그램에서 호출해서 해보면 안됩니다..

다른분들의 고견 좀 부탁드리겠습니다.