I\'m testing Android 6.0 on a Nexus 5 and i\'m using Metaio (I know that the service is going to end on the 15th of december but for that date we\'ll move to another AR plat
Previous versions of Android would warn if asked to load a shared library with text relocations:
"libfoo.so has text relocations. This is wasting memory and prevents security hardening. Please fix.".
Despite this, the OS will load the library anyway. Marshmallow rejects library if your app's target SDK version is >= 23. System no longer logs this because it assumes that your app will log the dlopen(3) failure itself, and include the text from dlerror(3) which does explain the problem. Unfortunately, lots of apps seem to catch and hide the UnsatisfiedLinkError throw by System.loadLibrary in this case, often leaving no clue that the library failed to load until you try to invoke one of your native methods and the VM complains that it's not present.
You can use the command-line scanelf tool to check for text relocations. You can find advice on the subject on the internet; for example https://wiki.gentoo.org/wiki/Hardened/Textrels_Guide is a useful guide.