java.lang.UnsatisfiedLinkError:dlopen失败:无法找到符号"__aeabi_memmove4".

问题描述:

我已经使用NDK交叉编译了许多不同版本的库,并在我的Android应用程序中使用了它们.它们工作正常,直到我的应用程序最终发布,我的同事已经在他的XiaoMi 4上测试了该应用程序,并且出现了此错误. 首先,我认为这可能是因为某些特定平台的库丢失了,但是不久之后,我提取了.apk文件并发现实际上所有内容都在那里.

I've used NDK cross compiled many different version of library and used them in my Android application. They just work fine, until final release of my app, my fellow worker have tested the application on his XiaoMi 4 and this error appeared. First I thought it maybe because of some particular platform's library's lost, but soon after I extract the .apk file and find everything was actually there.

我在搜索google时发现没有什么可以解决问题的.

I have searched for google found nothing that can solve the problem.

PS:在我的新版本应用程序中,我只更改了C库中的几行,而所有内容仅与if-else-return有关.我从未使用过任何memcpy-memmove函数,更不用说memmove4了.

PS: In my new version of application, I just changed few lines in my C library and all of them is just about if-else-return stuff. I'd never used any of those memcpy-memmove functions, let alone memmove4.

是否有人可以向我解释?什么是__aeaib_memmove4?

If anyone can explain this to me? what is __aeaib_memmove4 ?

所以我终于解决了问题,将Android.mk文件中的APP-PLATFORM从8升级到了17,这是我的targetSDKversion,所以该错误消失了

So I finally solved the problem by upgrading the APP-PLATFORM in my Android.mk file from 8 to 17, which is my targetSDKversion, so the error is gone.