JNI_OnLoad已定义但未在Android 4.4.2上找到

时间:2013-12-17 10:18:32

标签: android android-ndk

我有一个Android原生lib。我已经定义了JNI_OnLoad函数。一切都在使用android 2.3.7,但在android 4.4.2上,它说它无法找到我的JNI_OnLoad方法。因此,进一步调用我的原生方法失败了(显然)。

加载了lib(.so),并在加载后显示错误消息。

我已经三次检查拼写错误,方法签名不匹配等等......因为它适用于android 2.3.7,我怀疑问题就这么简单。

我还使用另一个本机lib进行了测试,它适用于两个版本。

我试图使用“好”的代码重写“错误”的lib,但它仍然无法在android 4.4上运行

我还阅读了android 4.4的更改日志,但没有发现任何相关的内容

有人有想法吗?

感谢

- 编辑 -

忘记提及.so上的readelf显示JNI_OnLoad:

192: 0000a214   252 FUNC    GLOBAL DEFAULT    8 JNI_OnLoad

- GOT IT -

好吧,这真的很奇怪:我只是改变了我的lib的名字,它确实有效。碰巧我称我的lib为“sync”(libsync.so)。如果我将此名称更改为其他任何名称,那么它的工作原理。加载lib并调用其JNI_OnLoad函数。

所以,要小心:不要调用本机lib“sync”

我稍后会将此作为答案发布,所以现在不允许这样做

0 个答案:

没有答案