android studio jni传参调用c++的imread函数
c++函数:
注意
(1)之前测试都是在c++里写死路径,如:imread("//mnt//sdcard//healgen//test.png";)
等到用参数path传入时就报错,原因是c++ 需要的是const char *path,java 调用jni传的是string path
解决办法:将jstring 转为 const char * ,可以使用jni自带的转换函数GetStringUTFChars
(2) JNIEnv *env, jobject thiz, jstring path 的顺序。
java 调用 :
第一步:static {
System.loadLibrary(“whitebalance”);
Log.i(“JNI”, “-------------whitebalance load success--------------”);
}
第二步:public static native String white(String path);
第三步:String path="//mnt//sdcard//healgen//test.png";//sdcard里的图片
white(path);
实战成功,欢迎和我多多交流!