My app uses the Zoom SDK. I was having trouble installing it on the Android emulator with an x86 system image (specifically, 23, 24, 25 on several devices), getting the error:
INSTALL_FAILED_NO_MATCHING_ABIS
I was able to solve this problem using a suggestion from another StackOverflow post, by putting the following in my build.gradle.
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
However, now in my app/builds/outputs/apk folder, there are multiple apk's being generated, namely:
app-arm64-v8a-debug.apk
app-armeabi-debug.apk
app-armeabi-v7a-debug.apk
app-mips-debug.apk
app-mips64-debug.apk
app-universal-debug.apk
app-x86-debug.apk
app-x86_64-debug.apk
Edit: Creating a release build also creates these same versions, minus the 'debug' name, using 'release' instead. According to the documentation,
A universal APK contains code and resources for all ABIs in a single APK.
However, when I try to install the app-universal.apk, I fail with the same ABIS error as before.
I also tried to generate the release build, which failed with the same error.
Installing the app-x86-debug.apk on the emulator works just fine, however. So, it seems to me like the documentation on the universal apk does not seem to match the actual behavior.
Can someone explain to me how I can generate an apk that will run on both android devices and the emulator? If not, why am I not getting the expected behavior form app-universal.apk ?