2017-01-22 184 views
-1

我已經使用NDK交叉編譯了許多不同版本的庫,並在我的Android應用程序中使用它們。他們工作正常,直到最終發佈我的應用程序,我的同事已經在他的XiaoMi 4上測試了應用程序,並且出現此錯誤。 首先,我認爲這可能是因爲某些特定平臺的圖書館丟失了,但不久之後,我提取.apk文件,並發現一切實際上都存在。java.lang.UnsatisfiedLinkError:dlopen失敗:無法找到符號「__aeabi_memmove4」

我已經搜索谷歌發現沒有什麼可以解決問題。 PS:在我的新版本的應用程序中,我只是在我的C庫中更改了幾行,並且它們都只是大約if-else-return的東西。我從來沒有使用過這些功能中的任何一種,更不用說memmove4

如果有人能向我解釋這一點?什麼是__aeaib_memmove4

+0

人們應該總是解釋爲反對票。 – WALKER

+0

我會嘗試不同的ndk版本,看看是否改變了一切。另外,你看這裏:http://stackoverflow.com/questions/39541599/error-loading-package-jni-cannot-locate-symbol-aeabi-memcpy? – yakobom

+0

@yakobom我想到的第一件事是:也許我的Mac上的NDK是不同的。所以我試着在新安裝的Ubuntu和Windows上編譯我的庫,但沒有成功。這個問題發生在'小蜜4'上,但在其他設備上工作得很好。所以,唯一的解釋是:我目前的NDK版本過高(並且包含一些'XiaoMi4'不支持的功能)。 – WALKER

回答

0

所以我終於在我的Android.mk文件,從8到17,這是我targetSDKversion升級APP平臺的解決了這個問題,所以錯誤消失。

相關問題