【问题标题】:android: dlopen failed: cannot locate symbol "__aeabi_memclr8"android:dlopen 失败:找不到符号“__aeabi_memclr8”
【发布时间】:2016-09-20 09:29:41
【问题描述】:

我已将 Android Studio 更新到 2.2 版,当我尝试在装有 Android 6 (API 23) 的设备上打开应用时出现此错误:

dlopen failed: cannot locate symbol "__aeabi_memclr8"

我使用 NDK,我的 compileSdkVersion 和 targetSdkVersion 设置为 24。

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 我遇到了同样的问题——使用 NDK 12b。我看到另一个社区搬回 NDK 11c 来解决这个问题。目前我要回到 23 岁的目标,但这里有一个真正的解决方案会很好!
  • 您的 NDK 目标平台 (APP_PLATFORM) 不应高于 minSdkVersion。

标签: android android-studio android-ndk


【解决方案1】:

compileSdkVersion 是一个最低 API 级别。您不能针对 android-24 构建并在 android-23 上运行。您需要以 android-23 或更低版本为目标。

【讨论】:

  • 我认为 minSdkVersion 是最低 API 级别,targetSdkVersion 是测试应用程序的最高 API 级别。
  • 哎呀。错字。我的意思是compileSdkVersion(我想,我对事物的ndk-build命名真的更熟悉,但是从通过gradle插件的快速grep我相信它是compileSdkVersion而不是targetSdkVersion)。 minSdkVersion 对 Java 是正确的,但 C++ 没有(不能)具有相同的 min/compile/target/max,只有 min。我猜 gradle build 为此使用 compile 而不是 min。我会编辑答案。感谢您了解这一点。
  • 问题是我无法将 complieSdkTarget 更改为 23,因为我将目标设置为 24 并且我使用支持库版本 24.2.1。但在模拟器上一切正常。
猜你喜欢
  • 2019-12-10
  • 1970-01-01
  • 2017-10-13
  • 1970-01-01
  • 1970-01-01
  • 2018-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多