Pinki
Pinki

Reputation: 21929

Android Nougat: Detected problems with app native libraries

we just upgrade our Nexus 96 to Android N and now get the following popup while working with our app: enter image description here

give me some suggestions

Upvotes: 4

Views: 15523

Answers (2)

pRaNaY
pRaNaY

Reputation: 25310

Check reported same issue: https://github.com/litehelpers/Cordova-sqlcipher-adapter/issues/41

Now it has already been resolved.

For reference:

sqlcipher/android-database-sqlcipher#216

You can check SQLCipher for Android Release—Android N Support on below link:

https://discuss.zetetic.net/t/sqlcipher-for-android-release-android-n-support/1465

EDIT:

You can also check NDK Apps Linking to Platform Libraries for private libraries usage.

Check "Update your app" section which provides steps to fix these types of errors.

Upvotes: 4

nandsito
nandsito

Reputation: 3852

You are probably using a native library that is directly accessing private APIs. The issue is described below.

From Android Developers Blog https://android-developers.googleblog.com/2016/06/android-changes-for-ndk-developers.html:

Private API (Enforced since API 24)

Native libraries must use only public API http://developer.android.com/ndk/guides/stable_apis.html?utm_campaign=android_discussion_ndkchanges_062716&utm_source=anddev&utm_medium=blog, and must not link against non-NDK platform libraries. Starting with API 24 this rule is enforced and applications are no longer able to load non-NDK platform libraries. The rule is enforced by the dynamic linker, so non-public libraries are not accessible regardless of the way code tries to load them: System.loadLibrary(...), DT_NEEDED entries, and direct calls to dlopen(...) will fail in exactly the same way.

(...)

Potential problems: starting from API 24 the dynamic linker will not load private libraries, preventing the application from loading.

Resolution: rewrite your native code to rely only on public API. As a short term workaround, platform libraries without complex dependencies (libcutils.so) can be copied to the project. As a long term solution the relevant code must be copied to the project tree. SSL/Media/JNI internal/binder APIs should not be accessed from the native code. When necessary, native code should call appropriate public Java API methods.

A complete list of public libraries is available within the NDK, under platforms/android-API/usr/lib.

As other answers pointed, it seems that this API 24 issue has been solved.

Upvotes: 0

Related Questions