Sto provando a convertire un jbyteArray in stringa nativa c (char *) in jni? Purtroppo non riesco a trovare alcuna documentazione su come farlo. Sto invocando una funzione java con il seguente prototipo nel codice c.Come convertire jbyteArray in char nativo * in jni?
public static byte[] processFile(byte[] p_fileContent)
Nel codice c sto invocando questa funzione che restituisce un array di byte. Il contenuto di questo array di byte è una stringa java. Ma ho bisogno di convertirlo in una stringa c.
jbyteArray arr = (jbyteArray) env->CallObjectMethod(clsH, midMain, jb);
printf("%s\n", (char*) arr);
Il tuo link è rotto. Per favore aggiornare. –
@DRH L'aggiornamento di un collegamento 1.4.2 a un collegamento 1.5 non è un gran miglioramento. – EJP
Attenzione terminerà con null. In generale, il contenuto del file non sarà terminato con null; Le funzioni di stringa C (++) potrebbero soffocare su quello. Per aggirarlo in modo affidabile, è necessario copiare i byte del file in un buffer di un byte più grande e impostare il byte finale su zero –