JNI는 jstring을 char*로 변환합니다.
URL 문자열을 Java에서 C 코드로 전달했습니다.jstring
JNI를 사용하여 데이터 유형을 지정합니다.그리고 내 라이브러리 방법에는char *
url로 지정합니다.
변환 방법jstring
에char *
?
추신: C에서 jcharArray를 사용하면 어떤 이점이 있습니까? (즉, 패스)char []
네이티브 메서드의 문자열 대신)
여기 JNI를 시작했을 때 찾은 몇 가지 유용한 링크가 있습니다.
http://en.wikipedia.org/wiki/Java_Native_Interface
http://download.oracle.com/javase/1.5.0/docs/guide/jni/spec/functions.html
당신의 문제에 관해서 당신은 이것을 사용할 수 있습니다.
JNIEXPORT void JNICALL Java_ClassName_MethodName(JNIEnv *env, jobject obj, jstring javaString)
{
const char *nativeString = env->GetStringUTFChars(javaString, 0);
// use your string
env->ReleaseStringUTFChars(javaString, nativeString);
}
먼저 제이슨 로저스의 답변에 감사드립니다.
Android & cpp에서는 다음과 같습니다.
const char *nativeString = env->GetStringUTFChars(javaString, nullptr);
// use your string
env->ReleaseStringUTFChars(javaString, nativeString);
다음 오류를 수정할 수 있습니다.
1. 오류: '->'의 기본 피연산자에 포인터 유형이 아닌 'JNIEnv {aka _JNIEnv}'가 있습니다.
2. 오류: '_JNIEnv:'에 대한 호출에 일치하는 함수가 없습니다.GetString(스트링)UTFChars (JNIEnv*&, _jstring*&, bool) '
3. 오류: '_JNIEnv:'에 대한 호출에 일치하는 함수가 없습니다.릴리스 문자열UTFChars(JNIEnv*&, _jstring*&, char const*&)
4. 마지막에 "env-> Delete Local Ref(native String)"를 추가합니다.
언급URL : https://stackoverflow.com/questions/4181934/jni-converting-jstring-to-char
'sourcecode' 카테고리의 다른 글
왜 자바에서는 10부터 99까지의 모든 숫자의 곱이 0이라고 생각할까요? (0) | 2023.01.30 |
---|---|
값이 일정한 bindParam을 사용하는 경우 참조 오류에 의해 파라미터 2를 통과시킬 수 없습니다. (0) | 2023.01.30 |
mysql 설명 분석이 안되는 이유는 무엇입니까? (0) | 2023.01.30 |
java.displaces를 클릭합니다.날짜 형식 yyy-mm-dd에서 mm-dd-yyy로 변환 (0) | 2023.01.30 |
psycopg2: 하나의 쿼리로 여러 행을 삽입합니다. (0) | 2023.01.30 |