01/10/2018, 17:17

Convert giá trị biến string (cpp) sang String (java) thông qua jstring (jni) Android NDK

Xin chào
Mình lấy giá trị kiểu string trong cpp về String trong java thông qua kiểu jstring của JNI (Java Native Interface) như thế này tại sao giá trị trả về vẫn null nhỉ. Có bạn nào làm Android NDK rồi xem giúp mình với
File *java
Khai báo

String result = null;

Hàm native

private static native void processFrame(String result);

Gọi hàm

 processFrame(result);

Set giá trị lấy được

   TextView result_text_view = (TextView)((Activity) getContext()).findViewById(R.id.result_text_view);
    result_text_view.setText("SCC: " + result);

File *cpp

extern "C" JNIEXPORT void // disalbe name mangling C/C++
JNICALL
Java_com_anhquantran_pscra_MyGLSurfaceView_processFrame(
        JNIEnv *env,
        jobject /* this */,
        jstring result
    ) {
   string scc = "Unknown";
   result = env->NewStringUTF(scc.c_str());
}

Xin cảm ơn

HelloWorld viết 19:18 ngày 01/10/2018

// string result = "something";

extern "C" JNIEXPORT jstring JNICALL Java_com_anhquantran_pscra_MyGLSurfaceView_getSCC(
            JNIEnv *env,
            jobject
        ) {
        return env->NewStringUTF(result.c_str());
    }
Bài liên quan
0