Любой процессор arm64, который вы найдете в смартфоне, также должен иметь возможность запускать код arm32.
Однако необходимо выполнить как минимум три требования:
- Ваш процесс не может смешивать 64-битный и 32-битный код - он должен быть одним или другим.
- Ваша операционная система (или вы) должны предоставлять 32-разрядные версии всех динамических библиотек, на которые вы ссылаетесь.
- Ядро вашей ОС должно иметь поддержку 32-битных процессов; он будет отвечать за переключение режима выполнения, пока ваш процесс использует ЦП.
Номер 3 в порядке; Android использует Linux-подобное ядро, которое поддерживает процессы arm32 на arm64.
Номер 2 , вероятно, в порядке; Я не знаю, откуда вы узнали, что Android 8.0 только 64-битный, но это не так. Производитель устройства может исключить 32-разрядную поддержку, но я не знаю, что из этого получится (потому что это предотвратит запуск на их устройствах устаревших 32-разрядных приложений и игр).
Конечно, поставка 32-битных и 64-битных библиотек на телефонах означает, что ОС занимает больше места для хранения, поэтому вполне возможно, что в будущем появятся только 64-битные устройства. Никакие 32-битные игры или приложения не будут работать на этих устройствах.
Ваша проблема с номером 1: ваше приложение работает как 64-битный процесс и пытается загрузить 32-битную библиотеку. Это не будет работать.
Решением будет сделать ваше приложение 32-битным. Однако если вы можете избежать всего этого, я бы порекомендовал против этого (т.е. не используйте эту библиотеку). Ваше приложение не будет работать на любых 64-битных устройствах, которые могут быть выпущены в будущем.