在 Kindle Fire 上加载 NDK 库时缺少 c 标准库符号

Missing c standard library symbols when loading NDK library on Kindle Fire

我的 Android 应用有一个 NDK 库。当 运行 在带有 Fire OS 4.5.5 的 Kindle Fire HD 上时,应用程序无法加载 NDK 库,因为某些 C 标准库符号未解析,即它们似乎完全缺失:

我的 Nexus 5 库存没有发生这个问题 Android 6.

有谁知道为什么这些符号完全缺失,是否有官方列表某处包含此类缺失符号?

是否还有其他 "major" Android 具有此类非常规 C 标准库的分支?

更新: 我正在使用 Android Studio 1.5.1 和 Gradle experimental plugin 0.4.0.

编译应用程序和 NDK 库
compileOptions.with {
    sourceCompatibility=JavaVersion.VERSION_1_7
    targetCompatibility=JavaVersion.VERSION_1_7
}

android {
    compileSdkVersion = 23
    buildToolsVersion = "23.0.2"

    defaultConfig.with {
        applicationId = "net.pol_online.hyper"
        minSdkVersion.apiLevel = 18  // Android 4.3 Jelly Bean
        targetSdkVersion.apiLevel = 23  // Android 6.0 Marshmallow
    }
}

更新: 解决方案是在 Gradle 配置中设置它,因为事实证明 minSdkVersion.apiLevel 不会影响 NDK:

android.ndk {
   platformVersion = "18"
}

您确定您已针对正确的原生 API 级别构建了 NDK 库吗?如果您构建它的目标是 android-21 或更高版本,并且 运行 是针对旧的 android 版本——尤其是这些功能将失败。有关详细信息,请参阅 and 。