在android里做ndk编程的时候碰到个随机性错误
这个错误并不是再调用某个jni接口的时候发生的
而是反复调用之后(或是上层进行了一些其他操作后)冷不丁的蹦出来
程序虽然没有彈框,但进程已经挂了
这种随机问题最难搞了很难确定哪行代码出的问题
于是各种百度谷歌寻求解决方案
网上也有很多人都遇到类似的問题
主要症结还是内存操作的问题
在经过各种排查测试后,折腾了老半天
终于找到问题所在的确是内存操作有误
于是写了个转化函数,原型如下:
而chars[3]=0就等于是数组越界访问修改了
这样无形当中就破坏了堆内存给程序留下安全隐患
到特定时候就会触发错误爆发
在调用函数处處理了char*之后再delete掉就ok了
哎C++的指针真是让人又爱又恨
还是好好检查下native代码
看看有没有指针操作不当的问题
指针有风险,操作需谨慎
仅以此文尛记希望对大家有帮助~