今天在配置Android studio 下的NDK环境时候,在ndk-build产生.so文件之后使用
static {
System.loadLibrary("ndktest");
}

没有报错,但是一旦调用本地方法就报错
java.lang.UnsatisfiedLinkError: Native method not found: sample.change.me.ndk.NDKTest.add:(II)I

在网上搜了好多资料,都没解决,后来回头仔细查看我的代码, 发现犯了一个严重的错误。
我的本地.h文件是这样的:
java.lang.UnsatisfiedLinkError: Native method not found: sample.change.me.ndk.NDKTest.add:(II)I

然后我直接复制这个文件并且改名为ndktest.c文件,如下:
java.lang.UnsatisfiedLinkError: Native method not found: sample.change.me.ndk.NDKTest.add:(II)I
我就直接在本地函数里面编写C++代码了,除了引入相应的包,其他没做改动,然后编译就直接报上面的错误了,找不到本地方法。问题就在于其他都没做改动,我把它改成如下:
java.lang.UnsatisfiedLinkError: Native method not found: sample.change.me.ndk.NDKTest.add:(II)I

然后重新build程序再运行就不再报错了。改完之后千万记得要重新build,不然还是会报错的。

相关文章: