2017-01-30 117 views
0

符號__aeabi_memset I交叉編譯CMake的應用,產生。所以文件ARM V7稍後包含在Android項目:未能找到在Android應用程序

cmake ../src -G "Unix Makefiles" -DCMAKE_SYSTEM_NAME=Android -DCMAKE_ANDROID_NDK="/opt/android-ndk-r13b" 

當我創建APK文件並將其上傳到手機。該應用程序未能啓動,產生了以下消息:

AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: 
cannot locate symbol "__aeabi_memset" referenced by 
"/data/app/org.qtproject.example/lib/arm/libexample.so" 

似乎的libc包含__aeabi_memset,但我目前加載在加載這個庫。什麼可以調用這個函數?

我試圖通過降級SDK的API 22:

  • Android SDK中的編譯工具23.0.1
  • 的Android 5.1.1(API 22)
  • CMake的3.7.2。
+0

我有同樣的問題,但只有與Android 6.0的MTK6580平臺上的設備。你有沒有找到解決這個問題的方法? – Beyka

+0

我在Android項目中包含一個靜態庫,該庫使用不同的Android NDK版本進行編譯。通過編譯所有具有相同NDK版本的東西解決了這個問題。 – lackadaisical

回答

0

好的。經過一些測試後,我找到了解決方案,也許它會對你或其他人有所幫助。我的本地庫停止與UnsatisfiedLinkError崩潰:dlopen失敗: 無法找到符號「__aeabi_memset」後,我用Android-NDK版本10重建它。

相關問題