마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

jni c함수에서 native 함수를 호출할 방법이 있나요?

0 추천
jni 를 이용하여 작업중인데요

.c 파일에서 ndk-build를 이용하여 so 파일을 만드는데

.c 파일에는 c함수와 native 함수가 섞여 있는데

c함수에서 native 함수를 호출할 방법이 있나요?

아래 1, 2 두가지 방법을 써봤는데

1 번은 undefined reference to 'getsize' 에러가 나오고요

2 번은 JNIEnv, jobject 값을 얻어와야 하는데 2번 방식으로 하면 될런지?

-------------------

int test()

{

//여기서 native getsize 함수 호출

1. getsize()

2. JNIEXPORT jint JNICALL Java_com_test_jni_example_getsize()

}

JNIEXPORT jint JNICALL Java_com_test_jni_example_getsize(JNIEnv *env, jobject job)

{

.....

}
oblab (1,490 포인트) 님이 2015년 8월 10일 질문

1개의 답변

0 추천
getSize 메소드가 jni c 파일에 있는게 아니라 다른 파일에 있을 듯 한데. 맞는지요?

그렇다면 그 파일이 빌드가 되는지 확인해보시고,

빌드는 하는데도 심볼을 못 찾은다면,

가장 의심 스러운게  그파일이  cpp 파일이라 , 맨글링(Mangling) 이슈가 발생했을 가능성이 있습니다.

해당 함수에  extern "C"  를  붙여 보시던지 jni를 cpp 형식으로 구현 해보세요
익명사용자 님이 2015년 8월 10일 답변
...