首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法运行具有.so (共享对象)文件的apk

无法运行具有.so (共享对象)文件的apk
EN

Stack Overflow用户
提问于 2015-11-11 07:10:00
回答 1查看 65关注 0票数 0

我遵循了这个答案(链接)中提到的所有步骤。

但是,我仍然得到相同的不满意的链接错误,如下所示。

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,

代码语言:javascript
运行
复制
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不同?

这就是不满意链接器错误的原因吗?

EN

回答 1

Stack Overflow用户

发布于 2015-11-11 11:13:14

您的Java类是com.example.testsampleso.Addition,,但是这个库是与Java类com.ndkadd.Addition.Addition.一起构建的。

您只能使用正确的名称(和包名)从类调用mAdd本机方法。这个名称不适合您的Android包名称,但这没有问题。

可以将任何具有任何包名的类添加到APK中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33645746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档