char*
AndroidでJNIを使用してC++からJavaに渡そうとしています。私はそのデータを渡すためにいくつかの方法を試しました
1)使用NewStringUTF
:
const char* data = getData(); // this method returns a char array.
env->NewStringUTF(data);
上記のコードを実行すると、以下のエラーがスローされます
JNI WARNING: input is not valid Modified UTF-8: illegal continuation byte 0x70.
2)使用NewString
:
const char* data = getData(); // this method returns a char array.
// passing a byte array to java
jbyteArray trackIDArray = env->NewByteArray(strlen(data));
env->SetByteArrayRegion(trackIDArray, 0, strlen(data), (const jbyte*)trackID);
Java側では、ガベージ値を取得しています。char
この配列をJavaに取り込む方法がわかりません。