当前位置: 首页 > news >正文

成都市做网站的公司做网站建设费用预算

成都市做网站的公司,做网站建设费用预算,在施工过程中某施工企业的安全,做网站要会哪些软件不同线程都需要通过 JavaVM 获取到的 JNIEnv 指针#xff0c; 如果有两个线程有两个 env。 其中一个是jni接口自己传过来的#xff0c;可以正常使用#xff0c;正常获取kotlin中的class。但是通过 JavaVM 新获取的env 无法找到kotlin的class 1. 确保线程已附加到 JVM 确保…不同线程都需要通过 JavaVM 获取到的 JNIEnv 指针 如果有两个线程有两个 env。 其中一个是jni接口自己传过来的可以正常使用正常获取kotlin中的class。但是通过 JavaVM 新获取的env 无法找到kotlin的class 1. 确保线程已附加到 JVM 确保每个线程在使用 JNIEnv 之前已附加到 JVM。可以在每个线程中调用 AttachCurrentThread JavaVM* g_jvm nullptr;JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved) {g_jvm vm;return JNI_VERSION_1_6; }void someJNIFunction() {JNIEnv* env;if (g_jvm-AttachCurrentThread(env, nullptr) ! JNI_OK) {// 处理错误return;}// 使用 env 进行 JNI 调用jclass cls env-FindClass(com/example/YourKotlinClass);if (cls nullptr) {// 处理类未找到的错误}// 线程使用完成后分离线程g_jvm-DetachCurrentThread(); }2. 确保正确缓存类引用关键类要转化成全局引用即可给不同env使用 确保类引用被正确缓存并且在不同的线程中可用。可以在 JNI_OnLoad 中缓存类引用 jclass g_yourKotlinClass; //这里是关键JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved) {g_jvm vm;JNIEnv* env;if (vm-GetEnv(reinterpret_castvoid**(env), JNI_VERSION_1_6) ! JNI_OK) {return JNI_ERR;}// 这部分代码也可以写在 someJNIFunction 内。 不一定要写在JNI_OnLoad内jclass localClass env-FindClass(com/example/YourKotlinClass);g_yourKotlinClass (jclass) env-NewGlobalRef(localClass);env-DeleteLocalRef(localClass);return JNI_VERSION_1_6; }3. 例子完整示例代码 #include jni.h #include android/log.h#define LOG_TAG JNI_OnLoad #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)JavaVM* g_jvm nullptr; jclass g_yourKotlinClass nullptr;JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved) {g_jvm vm;JNIEnv* env;if (vm-GetEnv(reinterpret_castvoid**(env), JNI_VERSION_1_6) ! JNI_OK) {return JNI_ERR;}jclass localClass env-FindClass(com/example/YourKotlinClass);if (localClass nullptr) {return JNI_ERR; // 类加载失败}g_yourKotlinClass (jclass) env-NewGlobalRef(localClass);env-DeleteLocalRef(localClass);return JNI_VERSION_1_6; }void someJNIFunction() {JNIEnv* env;if (g_jvm-AttachCurrentThread(env, nullptr) ! JNI_OK) {// 处理错误return;}if (g_yourKotlinClass nullptr) {LOGD(Kotlin class is null);return;}jmethodID methodID env-GetMethodID(g_yourKotlinClass, yourMethodName, ()V);if (methodID nullptr) {LOGD(Method ID not found);return;}jobject obj ... // 获取对象实例env-CallVoidMethod(obj, methodID);g_jvm-DetachCurrentThread(); }
http://www.tj-hxxt.cn/news/233774.html

相关文章:

  • 文明网站建设情况百度网站权重查询
  • 深圳市建设银行网站首页长春做网站哪家公司好
  • 网站技术解决方案wordpress国外主题破解
  • 广元市建设局网站工作英语
  • 私人设计网站推荐h5页面制作软件thinkphp
  • 如何选取网站关键词科技画4k纸科幻画一等奖
  • 关于集团网站建设的修改请示首码项目推广平台
  • wordpress编辑网站嵌入式软件开发专业
  • 东莞做网站那家好南昌网站建设制作与维护
  • 微信网页制作网站建设京网站建设
  • 搜狐快站怎么样温州自助模板建站
  • 济南网站建设搜q.479185700泰安网上申请货车通行证
  • 贵阳网站建设hsyunso网络推广大概需要多少钱
  • 自己做的网站本地调试骨科医生咨询在线咨询免费
  • 代备案网站空间移动端网站开发与网页开发区别
  • 博兴做网站郑州关键词排名公司电话
  • 网站什么情况要更新wordpress5.0.1
  • 青岛网站建设价格网站建设方案前言
  • 成都鲜花网站建设小程序商城免费
  • 景县有专业做网站人员吗服务器怎么发布网站
  • 建设公司董事长致辞网站范文网站排名怎么提升
  • 江苏 网站集约化建设方案网络营销专业课程
  • 创建电子商务网站的步骤临沂哪里有做网站的
  • 南昌门户网站建设看广告挣钱一天300元
  • 如何运营一个行业网站网站建设公司没落
  • 做ppt模板的网站网站为契机建设校园数字化
  • 塘沽建设网站公司女生读电子商务好就业吗
  • 开店加盟北京网站优化公司 卓立海创
  • 个人网站备案描述招商加盟类网站模板
  • 如何快速提升网站关键词排名企业管理考研