Есть ли способ заставить SO или что-либо еще искать библиотеку armeabi и x86 JUST для этого модуля без настройки фильтра для всего приложения?
Ответ НЕТ.
Поскольку на 64-разрядных устройствах, если вы предоставили как 32-разрядные, так и 64-разрядные .so
, система выберет 64-разрядную версию для всех библиотек .so
. Если какая-то библиотека не имеет соответствующей 64-битной библиотеки, ваше приложение выдаст ошибку java.lang.UnsatisfiedLinkError: Library xxx not found
, это связано с тем, что системе нужны согласованные И несмешанные собственные наборы инструкций, то есть либо чистые 64- битовые инструкции или чистые 32-битные инструкции. Вы НЕ МОЖЕТЕ ожидать, что система Android подхватит 64-битную .so
для некоторых библиотек, но ожидаете, что она подберет 32-битную .so
для других общих библиотек.
В вашем случае abiFilters
фактически заставляет все ваши .so
файлы иметь только 32-битную версию .so
для вашего окончательного apk, чтобы ваше приложение могло работать так, как вы сказали.