#android #firebase #gradle #arm #crashlytics
#Android #firebase #gradle #arm #crashlytics
Вопрос:
Недавно я обновил firebase crashlytics SDK до версии 17.2.1 (NDK-версия). Это обеспечивает стороннюю библиотеку libcrashlytics.so для архитектуры armeabi-v7a и arm64-v8a для 32-разрядных устройств на базе arm и 64-разрядных drvices. Но мое приложение создано для архитектуры armeabi для 32-разрядных устройств, а не для armaebi-v7a.
Итак, после сборки приложения, когда все библиотеки объединяются с помощью build gradle, я не вижу libcrashlytics.so библиотека в папке armeabi.
...build/intermediates/merged_native_libs/.../out/lib/armeabi-v7a/libcrashlytics.so
...build/intermediates/merged_native_libs/.../out/lib/arm64-v8a/libcrashlytics.so
...build/intermediates/stripped_native_libs/.../out/lib/armeabi-v7a/libcrashlytics.so
...build/intermediates/stripped_native_libs/.../out/lib/arm64-v8a/libcrashlytics.so
Поэтому, когда я пытаюсь открыть эту библиотеку с dlopen("libcrashlytics.so", RTLD_LAZY | RTLD_LOCAL));
помощью моего приложения, происходит сбой на 32-разрядных мобильных устройствах, поскольку оно не может загрузить библиотеку libcrashlytics. Мое приложение отлично работает с 64-разрядной архитектурой.
Но после копирования вручную libcrashlytics.so преобразование библиотеки в ...build/intermediates/stripped_native_libs/.../out/lib/armaebi/
каталог и последующее ее создание решает проблему. В https://developer.android.com/ndk/guides/abis упоминается, что armaebi-v7a совместим с armaebi, так что все должно быть в порядке.
Итак,
- Есть ли какой-либо способ предоставить gradle инструкцию для копирования «libcrashlytics.so » находится в армаеби-v7a в армаеби?
- Есть ли другой способ автоматизировать копирование во время сборки?
- Есть ли какие-либо другие способы решения моей проблемы?
Окружающая среда —
- Версия плагина Gradle — 3.5.4
- Версия Gradle — 5.4.1
ПРИМЕЧАНИЕ: По нескольким другим причинам я не могу перевести наше приложение на поддержку «armaebi-v7a»
Комментарии:
1. Вы можете обратиться к » github.com/Jween/android-soexcluder/blob/master/app/src/main /… «.