It's a 3rd party library and I do not have access to it's source code - asking them to build for ARM64 had no effect so far, despite they claim Android 8.0 (which is ARM64 only) would be "supported".
The following Java code runs on armv7l, but fails on aarch64:
static {
switch(System.getProperty("os.arch")){
case "aarch64":
case "armv7l":
try {
System.loadLibrary("somelibrary");
} catch(UnsatisfiedLinkError e) {
Log.e(LOG_TAG, e.getMessage());
}
break;
}
}
dlopen failed: "/data/app/ ... /base.apk!/lib/arm64-v8a/somelibrary.so" is 32-bit instead of 64-bit.
It seems, as if the AArch32 execution would be "optional" (and possibly not even available) - because one would (most likely) have to switch the CPU from AArch64 to AArch32 execution. eg. this slide-show covers the topic: Linux on AArch64 ARM 64-bit Architecture.
Q: Is there a way to use a 32bit library on a 64bit Android device?
As it turned out, this is not accepted by Google Play - providing ARM64 native assembly is required.