有时候jni写的好好的,java也写的对的,各种编译都没问题,理论上运行也应该是正确的。
但是就会报出UnsatisfiedLinkError这个问题。
排除库文件引用,函数命名,变量对应,库文件加载等等问题以后。最后发现一个很大很大的问题。
native端的 namespace,一定要注意,这个namespace一定要和java 的native 函数所在的类的包名一样,或者拿掉这个namespace,重名函数和变量用别的方式解决。
找了好几个小时,终于让我找到了是这个原因。
另外如果怀疑是这个原因的话,可以用临时拿掉namespace来验证下。
对了,如果是vs开发的,还要考虑使用release生成,不要用debug,大坑!不解释!