Переместить сторонний файл библиотеки из папки armaebi-v7a в встроенную папку armaebi

#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, так что все должно быть в порядке.

Итак,

  1. Есть ли какой-либо способ предоставить gradle инструкцию для копирования «libcrashlytics.so » находится в армаеби-v7a в армаеби?
  2. Есть ли другой способ автоматизировать копирование во время сборки?
  3. Есть ли какие-либо другие способы решения моей проблемы?

Окружающая среда —

  • Версия плагина Gradle — 3.5.4
  • Версия Gradle — 5.4.1

ПРИМЕЧАНИЕ: По нескольким другим причинам я не могу перевести наше приложение на поддержку «armaebi-v7a»

Комментарии:

1. Вы можете обратиться к » github.com/Jween/android-soexcluder/blob/master/app/src/main /… «.