我遵循了这个答案(链接)中提到的所有步骤。
但是,我仍然得到相同的不满意的链接错误,如下所示。
11-11 12:38:22.304: E/AndroidRuntime(19180):致命异常:主要11-11 12:38:22.304: E/AndroidRuntime(19180):java.lang.UnsatisfiedLinkError: mAdd
这是我们从本地Libs监视器获得的应用程序的屏幕截图
PS:我们使用NDK来生成.so文件,而不是使用cygwin64。
你能告诉我这里真正的问题是什么吗?
==更新==
请看下面的图片
在libAddition.so文件中,
本机方法public native int mAdd(int v1,int v2)
;在Addition.java文件中声明。
为该java文件生成头文件,该文件使用包含此声明的javah,
JNIEXPORT jint JNICALL Java_com_example_testsampleso_Addition_mAdd
(JNIEnv *, jobject, jint, jint);
在这里,我的问题是
为什么生成的头文件中的方法签名或入口点Java_com_example_testsampleso_Addition_mAdd
与.so文件中的Java_com_ndkadd_Addition_Addition_mAdd
不同?
这就是不满意链接器错误的原因吗?
发布于 2015-11-11 11:13:14
您的Java类是com.example.testsampleso.Addition,,但是这个库是与Java类com.ndkadd.Addition.Addition.一起构建的。
您只能使用正确的名称(和包名)从类调用mAdd本机方法。这个名称不适合您的Android包名称,但这没有问题。
可以将任何具有任何包名的类添加到APK中。
https://stackoverflow.com/questions/33645746
复制相似问题