IT

jstring을 char로 변환하는 JNI *

lottoking 2020. 8. 5. 07:40
반응형

jstring을 char로 변환하는 JNI *


jstringJNI를 사용하여 데이터 유형으로 Java에서 C 코드로 URL을 전달했습니다 . 그리고 내 라이브러리 메소드는 char *URL로 필요 합니다 .

CHAPTER 2 할 수 어떻게 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(env, javaString, 0);

   // use your string

   (*env)->ReleaseStringUTFChars(env, javaString, nativeString);
}


Jason Rogers의 답변에 먼저 감사드립니다.

에서 안드로이드 && CPP는 이 것입니다.

const char *nativeString = env->GetStringUTFChars(javaString, nullptr);

// use your string

env->ReleaseStringUTFChars(javaString, nativeString);

이 오류를 사용할 수 있습니다.

1. 오류 : '->'의 기본 피연산자가 포인터 유형이 아닌 'JNIEnv {aka _JNIEnv}'

2. 오류 : '_JNIEnv :: GetStringUTFChars (JNIEnv * &, _jstring * &, bool)'호출에 대한 일치하는 함수가 없습니다.

3. 오류 : '_JNIEnv :: ReleaseStringUTFChars (JNIEnv * &, _jstring * &, char const * &)'에 대한 호출과 일치하는 함수가 없습니다.

4. "env-> DeleteLocalRef (nativeString);"추가 결국.

참고 URL : https://stackoverflow.com/questions/4181934/jni-converting-jstring-to-char

반응형