2016-09-27 15 views
0

私のアプリはアンドロイドシステム/ libのlibhardware.soを使用しています。これはネイティブアプリです。 Android Mまでそれはうまくいきますが、Android Nでそれを実行しようとするとdlopenが失敗したライブラリlibhardware.soが表示されています。libhardware.soはAndroid Nに読み込めません。新しいAndroid Nポリシーのためですか?

は最近、私は、障害のhttps://developer.android.com/about/versions/nougat/android-7.0-changes.html#ndk

原因はこれです?この記事に出くわしましたか

答えて

0

だと思います。あなたのアプリに付属のライブラリを使うべきです。

2

はい。あなたはシステムから読み込むことができるしているライブラリのリストが正確であることを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 
+0

で、リストは、利用可能な最小のAPIとドキュメントで提供されています:https://developer.android.com/ndk/guides /stable_apis.html –

+0

その文書は古いです。 21までしか上がることはありませんが、23と24に新しいAPIが追加されました。 –

+0

こんにちは、 私のアプリはlibhardware.soを使用しています。 libhardware.soの独自のコピーに切り替えるように私のアプリに依頼することはできますか? libhardware.soを/ data/data/ /lib/libhardware.soにバンドルしようとしましたが、まだ失敗しています。 –

関連する問題