libhardware.so 未能在 Android N 中加载。这是由于新的 Android N 政策造成的吗?

libhardware.so is failing to load in Android N. Is this due to new Android N policies?

我的应用使用 android system/lib 中的 libhardware.so。这是一个本地应用程序。最多 Android M 它工作正常但是当尝试 运行 它与 Android N 时。它显示 dlopen 失败库 libhardware.so 未找到。

最近看到这篇文章https://developer.android.com/about/versions/nougat/android-7.0-changes.html#ndk

失败的原因是什么?

我也这么认为。您应该使用随您的应用提供的库。

是的。您可以从系统加载的库列表是 https://android.googlesource.com/platform/ndk/+/cc508145a36939c74399a90b9092673cf54e67f4/build/core/build-binary.mk#61

system_libs := \
    android \
    c \
    dl \
    jnigraphics \
    log \
    m \
    m_hard \
    stdc++ \
    z \
    EGL \
    GLESv1_CM \
    GLESv2 \
    GLESv3 \
    vulkan \
    OpenSLES \
    OpenMAXAL \
    mediandk \
    atomic