안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
JNI 에서 리턴값이 하나라면 그냥 return 하면 되는데...
여러 개를 반환하려니 결국 C/C++ 스타일의 call-by-reference 밖에 생각이 안나네요.
public native int GetValues(String Input1, String Output1, String Output2, String Output3);
위와 같은 설계에서, Input1 만 값이 셋팅되어서 들어가고, Output 1,2,3은 그냥 변수(객체?)만 들어갑니다.
JNI 코드 내에서 Output 1, 2, 3 에 문자열을 입력하고 싶은데 어떻게 해야 할까요?
return (*env)->NewStringUTF(env, "abcd"); 같은 것만 해봤지,
입력 파라미터의 값을 바꾸는 방법은 잘 못찾겠네요.
감사합니다.
String은 Call by Reference로 받으실 수 없습니다.
따라서 StringBuffer같은 것을 사용하셔야 하는데, JNI를 통해서 StringBuffer쓰는 법은 공부를 따로 하셔야 할겁니다.