在 Go 中将 C.jstring 转换为本机字符串
2022-09-02 11:03:01
如何在Go中将C.jstring转换为可用的字符串?
我正在使用GoAndroid。
在C中,你可以做类似这个堆栈溢出线程的事情
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);
}
在Go中,它开始看起来像这样
func Java_ClassName_MethodName(env *C.JNIEnv, clazz C.jclass, jstring javaString) {
defer func() {
if err := recover(); err != nil {
log.Fatalf("panic: init: %v\n", err)
}
}()
// ???
}