NDK-jni心得 c和c++对JNIenv的不同处理
答案:1 悬赏:50
解决时间 2021-01-16 05:39
- 提问者网友:动次大次蹦擦擦
- 2021-01-15 10:17
NDK-jni心得 c和c++对JNIenv的不同处理
最佳答案
- 二级知识专家网友:底特律间谍
- 2021-01-15 10:26
在NDK开发中,写jni函数时,遇到 “JNIEnv *env”参数时。如果是.cpp文件,就要如下调用:
env->GetStringUTFChars(name,NULL);env->ReleaseStringUTFChars(name, str);
如果是.c文件,就要如下调用:
(*env)->GetStringUTFChars(env,name,NULL);(*env)->ReleaseStringUTFChars(env, name, str);
在NDK开发中,如果要用到linux下编译的.so库,需要把.so库拷贝在NDK目录下的out\app\<项目名称>\,不然编译会出错。
有一点要补充的是,本文所用到的函数调用方式都是针对C++的,如果要在C中使用,所有的env->都要被替换成(*env)->,而且后面的函数中需要增加一个参数env,具体请看一下jni.h的代码。
zuolingfeng(作者)
env->GetStringUTFChars(name,NULL);env->ReleaseStringUTFChars(name, str);
如果是.c文件,就要如下调用:
(*env)->GetStringUTFChars(env,name,NULL);(*env)->ReleaseStringUTFChars(env, name, str);
在NDK开发中,如果要用到linux下编译的.so库,需要把.so库拷贝在NDK目录下的out\app\<项目名称>\,不然编译会出错。
有一点要补充的是,本文所用到的函数调用方式都是针对C++的,如果要在C中使用,所有的env->都要被替换成(*env)->,而且后面的函数中需要增加一个参数env,具体请看一下jni.h的代码。
zuolingfeng(作者)
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯