Wie kann ich einen C.jstring in Go in einen verwendbaren String konvertieren?
ich benutze GehenAndroid.
In C können Sie so etwas wie in diesem Stackoverflow-Thread tun
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);
}
in Go sieht es ungefähr so aus
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)
}
}()
// ???
}
Sie können einen Java-String in einen AC-String umwandeln (vor dem Aufruf von go func) und dann einen AC-String in einen Go-String umwandeln, indem Sie C.GoString() verwenden.
– chendesheng
28. Juli 2014 um 13:17 Uhr