package com.example.imagetogray;
public class LibFuns {
static {
System.loadLibrary("ImgToGray");
}
/**
* @param width the current view width
* @param height the current view height
*/
public native int[] ImgToGray(int[] buf, int w, int h);
}
这是声明!!
LibFuns myjni=new LibFuns();//new 一个自定义libfuns对象
int[] resultInt=myjni.ImgToGray(pix, w, h);//调用so中的灰度图处理方法
调用是这样的。
我这里只要new 程序就会直接崩溃退出。
本人刚接触安卓,请大神指教!!!!
参数都不对,参考:
https://www.cnblogs.com/aiguozhe/p/5355221.html
加:
try {
} catch (Throwable e) {
e.printStackTrace();
}
看看具体是产生了什么异常。
你检查一下System.loadLibrary("ImgToGray");加载的这个库是否存在;应该是这里出错了;
建议先注释这一行先确定问题;如果是这个问题就去确定库是否存在;
ImgToGray是你自己ndk的对象,MK文件是否正确了,系统是否找到了这个方法,还有,移动端调用NDK,建议不要新建对象来操作,你可以放到一个activity里面去,通过intent跳转到那个页面,反正你最终是要再layout中显示图片的嘛,新创建一个activity能避免不少麻烦
在 System.loadLibrary("ImgToGray"); 下个断点调试一下 ,如果是在这里崩球了说明 libImgToGray.so 有毛病,或者没有找见这个库
1.这个库找不到
2.编译so库的版本不兼容,具体可以看so库的注意事项 https://www.jianshu.com/p/cb05698a1968 ,