تا 90% تخفیف روی همه دوره‌ها + گارانتی بازگشت وجه + مدرک معتبر + منتورینگ استاد
پایان تخفیف تا:
مشاهده دوره‌ها
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);

راه حلی اگر دارید ممنون میشم


پرسیده شده در 1401/01/16 توسط

0 پاسخ

این سوال هنوز پاسخی ندارد

پاسخ شما