0
تنبدیل نوع داده از JNI به اندروید استودیو با استفاده از NDK
از NDK در اندروید استودیو دارم استفاده می کنم و یک فانکشن دارم که دوتا ازترین رو با زبان CPP به هم می چسبونه و خروجیش رو توی جاوا می خوام بگیرم.
const char* a="abc"
const char* b="def"
const char* ConvertFun(const char *a1, const char *b1) {
char buffer[strlen(a1) + strlen(b1)];
strncpy(buffer, a1, sizeof(buffer));
strncat(buffer, b1, sizeof(buffer));
return buffer;
}
extern "C"
JNIEXPORT jstring JNICALL
Java_com_api_GUGet(JNIEnv *env, jclass clazz) {
const char* y=ConvertFun(a,b); // تا اینجا درسست کار میکنه مقدار وای درست هست ینی
return env->NewStringUTF(y);
}
مشکلم اینه که اگر کد هارو از فانکشن ConvertFun بذارم توی Java_com_api_GUGet همه چیز خوب کار میکنه و اون طرف توی جاوا رشته کامل ینی ABCDEF رو میگیرم اما همون کد رو مثل بالا میزارم توی یک متد دیگه (ConvertFun ) کار نمیکنه و توی جاوا بهم کاراکتر های غیر نرمال میده.
طبق تست هایی که کردم مشکلم از تبدیل نوع داده توی این خط هست
return env->NewStringUTF(y);
راه حلی اگر دارید ممنون میشم