我已按照此回答中提到的所有步骤(Link)。
但我仍然得到相同的不满意的链接错误,如下所示。
11-11 12:38:22.304:E / AndroidRuntime(19180):致命异常:主要 11-11 12:38:22.304:E / AndroidRuntime(19180): java.lang.UnsatisfiedLinkError:mAdd
这是我们的应用程序的屏幕截图 Native Libs Monitor
PS:我们使用Android的NDK版本而不是cygwin64生成了.so文件。
请你告诉我这里真正的问题是什么?
==更新==
请浏览以下图片
在libAddition.so文件中,
原生方法public native int mAdd(int v1,int v2)
;在Addition.java文件中声明。
使用包含此声明的javah为此java文件生成头文件,
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
不同?
是链接器错误不满意的原因吗?
答案 0 :(得分:0)
您的Java类是 com.example.testsampleso.Addition ,但该库是为与Java类 com.ndkadd.Addition.Addition 一起使用而构建的。
您只能使用正确的名称(和包名称)从Java类调用 mAdd 本机方法。此名称不适合您的Android软件包名称,但没有问题。
您可以将任何包含任何包名称的类添加到APK。