多语言展示
当前在线:896今日阅读:167今日分享:16

Android 如何处理JNI异常的捕获和抛出?

Android JnI中异常的行为和java中的不同,在Java中抛出一个异常时,JVM会终止程序执行。并且JVM会反向检查处理特定类型的异常代码块。而在JNI NDK中需要开发人员自行处理异常。
工具/原料
1

Android Studio

2

Cmake

方法/步骤
1

捕获异常:JNI接口提供了一组与异常相关的函数集。在程序运行期间可以使用Java类查看这些函数。首先我们需要定义一个包含异常方法的Java类,如图:抛出异常的java方法

2

在JNI中提供了ExceptionOccurred函数查询挂起的异常。如图:查询异常

3

使用完成之后要使用Clear清理异常,具体的方法是ExceptionClear。如图3Clear清理异常

4

在JNI中也可以抛出异常,因为异常方法在Java层,我们要使用FindClass函数找到抛出异常的方法。如图:找到抛出异常的方法

5

如果要抛出异常,需要使用JNI函数ThrowNew函数进行处理。如图:ThrowNew函数抛出异常处理

6

在使用完JNI之后记得清理已经获取的资源。如图:处理异常资源

注意事项

ExceptionOccurred和ExceptionClear要成对使用。记得清理必要的资源。

推荐信息