I just learned that hard way that the androidNativeArm32 source set does not actually mean that the device has a 32 bit processor. It means that the device uses the armeabi-v7a ABI. Some older or cheap devices have a 64 bit CPU, but use the armeabi-v7a ABI, so they will use the androidNativeArm32 source set, not the androidNativeArm64 source set.