В своем приложении я использую Android NDK для создания библиотек для armeabi-v7a, arm64-v8a, x86 и x86_64 ABI. Я загружаю библиотеки в виде пакета в Google Play.
На некоторых устройствах я получаю следующую ошибку
Fatal Exception: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/my-package-name-1/base.apk"],nativeLibraryDirectories=[/data/app/my.package.name-1/lib/arm, /vendor/lib, /system/lib]]] couldn't find "libc++_shared.so"
Я проверил содержимое загруженного пакета, и он определенно содержит libc++_shared.so для вышеупомянутых ABI.
Похоже, что искомый каталог неверен "../lib/arm"
. Я не добавлял поддержку устаревших ABI (mips, armeabi), но я не помню, чтобы было что-то под названием "arm"
.
Как я могу решить эту проблему?
Обновление: явное указание поддерживаемых ABI в файле gradle не помогло. Я снова проверил, присутствует ли libc++_shared.so внутри файла пакета (для каждого ABI), прежде чем загружать его в магазин воспроизведения, и снова не было пропущенных файлов.
Еще одна странная вещь, которую я заметил, это то, что на одного пользователя приходится много сбоев (+10 на пользователя). Я нахожу это немного странным, потому что без библиотек приложение не может работать (даже не запускаться). И если бы я запускал приложение, которое сразу же вылетало или вообще не работало, я бы удалял его, вероятно, после первой неудачной попытки.
Спасибо