Convertir C.jstring en chaîne native dans Go

Comment puis-je convertir un C.jstring en une chaîne utilisable dans Go?

J'utilise GoAndroid .

  • Taille de police de TextView dans l'application Android modifie la modification de la taille de la police des paramètres natifs
  • ExpandableListView - Est-ce que l'expansion conditionnelle est possible?
  • Ensemble Android non débobable
  • Envoi de photos sur un serveur Web
  • Populating Android Spinner avec la liste des objets
  • Récupérer l'image de mysql-php (Android)
  • En C, vous pouvez faire quelque chose comme dans ce fil de stackoverflow

    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 it commence à ressembler à quelque chose comme ça

     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) } }() // ??? } 

  • Le bouton de défilement rapide disparaît lors du défilement AlphabetIndexer
  • GetCheckedRadioButtonId () renvoyant int inutile?
  • Aucune ressource trouvée qui correspond au nom donné 'android: Theme.Holo.Light'
  • INSTALL_FAILED_CPU_ABI_INCOMPATIBLE sur l'appareil utilisant intellij
  • Attribut de réglage de l'élément enfant de la disposition incluse
  • View.inflate vs LayoutInflater
  • One Solution collect form web for “Convertir C.jstring en chaîne native dans Go”

    Si j'étais vous, je cherchais Java à C, puis j'utiliserai une chaîne C standard pour aller.

    Je considérerais l'écriture d'une fonction C qui convertit la chaîne Java en chaîne C et la renvoie à Go Runtime.

    C à GoString:

     b := C.malloc(50) defer C.free(unsafe.Pointer(b)) C.callToCFunction(PChar(b), 50) rs := C.GoString(PChar(b)) return rs, err 

    Java a sa propre gestion de la mémoire et devrait donc avoir sa propre façon de transférer les données dans C. Vous pouvez demander avec les mots-clés Java JNI.

    Vous utilisez les temps de fonctionnement Java et Go dans un processus. Cela peut avoir des effets secondaires.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.