jni补充和异常处理

二次信任 提交于 2020-04-14 01:58:58

【今日推荐】:为什么一到面试就懵逼!>>>

前面基本总结了常见的一些情况,包括对数组,字符串,对象的处理,基本上满足了效果。

具体的例子都在https://git.oschina.net/xpbob/jni.git

我用的环境是mingw,环境变了的话,就修改makefile吧

我还有没总结的部分:异常处理

异常处理其实和java对象处理差不多,你可以选择先new一个异常,然后调用throw方法

也可以通过throwNew这个方法,简单易用,只需要传递jclass和信息就行,推荐大家使用

我感觉写代码还是各自有各自的流程处理,java和c++的交互只在获取值和返回值的时候最好。

这里再说点细节:

类引用只在本地方法返回时有效,不要全局保存。但是java还提供了newGlobalRef来锁定,用完后调用deleteGlobalRef去除引用,但是这在设计上感觉并不是很好的方法,我建议还是需要的时候再获取一个吧。

关于文件:

java都是大端,英特尔架构cpu基本是小端,arm架构cpu基本是大端,用c++读取java文件时,只要不是char(这里的char就是java里的byte),必须考虑字节的翻转。

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!