2017-01-30 88 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重建它。

相关问题