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

JNI 기초질문.. 파라미터 변수 보내기

0 추천

안녕하세요. 안드로이드 초보개발자 입니다.

JNI를 사용하여 c++에 변수를 던져줘야하는데 에러가 발생하네요..

무엇이 문제인지 알수 있을까요?

 

stringToJNI("TEST");  로 TEST라는 텍스트를 보내는걸 합니다..

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_camera);
    //stringToJNI("TESTST");
    if (null == savedInstanceState) {
        getSupportFragmentManager().beginTransaction()
                .replace(R.id.container, Camera2BasicFragment.newInstance())
                .commit();
    }
    stringToJNI("Test");
}
public native String stringToJNI(String result);
 
 
 
아래는 C 소스 부분입니다.
 
extern "C"
JNIEXPORT jstring JNICALL
Java_com_idr_javacamera_CameraActivity_stringToJNI(JNIEnv *env, jobject thiz, jstring result) {
    // TODO: implement stringToJNI()
}
 
실행하면 어플이 그냥 종료되는데.. 무엇이 문제일까요?
로그캣 에러는 아래와 같습니다.
 
2020-07-03 10:08:29.402 11626-11626/com.idr.javacamera
 A/libc: Fatal signal 4 (SIGILL), code 2 (ILL_ILLOPN),
 fault addr 0xbdc48f32 in tid 11626 (.idr.javacamera),
 pid 11626 (.idr.javacamera)
실베스테르르 (140 포인트) 님이 2020년 7월 3일 질문
실베스테르르님이 2020년 7월 3일 수정

1개의 답변

0 추천
C 함수에서 리턴하는 루틴이 빠져서 그런겁니다.

return 리턴할_스트링;
쮁쓰뻬로우 (240 포인트) 님이 2020년 7월 7일 답변
...