企业中JNI开发流程:
1、 java工程师定义好native方法
2、 java工程师使用javah工具,生成native方法的签名
3、 C工程师实现对应的C代码
Java调用C++和C代码的不同之处在于:
编写android.mk文件的时候需要使用一个配置文件——
#LOCAL_CPP_EXTENSION:= cc,这是一个C++的配置文件,等号右边是我们定义的C++文件的扩展名决定的,使用C++文件中应当将(*env)改为(env),将参数env去掉即可
NDK编译常见错误:
1、 未链接到需要的文件,如java中的本地方法和C代码实现的签名不对应,或者*.h文件没有在C代码中引入进来,报错误:
UnsatisfiedLinkError
2、 C/C++代码的源文件出现问题,报错: Error 1
3、 Android.mk文件配置出现错误,如将android.mk文件中要编译的源文件名改为“helloo.c”,报错:***No rule to make target
原因:要编译的C文件不存在,或者该文件为不可读