Disable NDK platform checking during install

As clearly stated in NDK documentation,

The new .apk will embed your shared libraries, and they will be extracted automatically at installation time by the system when you install the package on a target device.

Now, suppose I included only a subset of all possible libraries, say only the armeabi one. Trying to install on an x86 device will result in the following error:

Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE

Is it possible to disable platform checking and proceed anyway, since the application is able to fallback to a pure Java implementation of the native code?

Answers


My guess would be that it is not, however I believe including a nearly/effectively empty library for other platforms of interest would solve your problem at limited effort or package size impact.

I don't know for a fact that you'd actually need a valid .so for an architecture to pass the test, as opposed to a dummy file in the right folder with the right extension (assuming you never try to load it).

But even if you do need a valid one, you could just build the hello-jni sample for all architectures or something like that. Having a jni function you can call that returns if the library is usable or a stand-in might also be a simple way of solving the detection problem.


Need Your Help

Deleting multiple mysql rows from multiple tables with one statement

php mysql sql

All I can find are answers with Joins and Inner Joins,