Можно ли перенести библиотеку Android jni из x86 в x64 без исходного кода? - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть приложение, которое опирается на некоторые 32-битные нативные библиотеки ARM и мою нативную библиотеку.Из-за нового 64-битного требования мне нужно иметь 32- и 64-битные библиотеки в моем APK, но у меня нет доступа к исходному коду этих библиотек, поэтому я не могу скомпилировать их, чтобы удовлетворить эту потребностьСпрос.

Я искал 64-битные версии библиотек, на которые я полагаюсь, и уверен, что их не существует.Можно ли как-то перевести двоичные файлы из 32-разрядных в 64-разрядные или создать поддельные библиотеки, которые вообще не будут загружаться?

1 Ответ

0 голосов
/ 04 февраля 2019

Нет, это невозможно.Ваша проблема похожа на: Связывание 32-битной библиотеки с 64-битной программой

К сожалению, и без того плохое решение для этого типа проблемы, а именно межпроцессного взаимодействия между 32-битным и 64-битным приложениемне будет работать, поскольку приложение, которое выполняет собственный код, должно быть 64-битным.

Это решение больше не будет работать, см. инструкцию внизу.

Итаку вас есть только следующие опции:

  • Свяжитесь с издателем / владельцем библиотеки и запросите 64-битные двоичные файлы.
  • Найдите другую библиотеку, которая может заменить текущую.
  • Перекодируйте необходимый функционал самостоятельно.Возможно, вы захотите разобрать исходную библиотеку для этого.
  • Запустите 32-битную библиотеку на сервере и заставьте приложение взаимодействовать с сервером.Может быть очень медленным, и для этого требуется постоянное подключение к Интернету.

Я почти уверен, что предоставление «поддельных» 64-битных бинарных файлов нарушит ToS PlayStore, так что даже если он будет принят в первую очередь, вашприложение может быть удалено в любое время.

Но если вы готовы пойти на риск, вы можете создать собственную 64-битную версию библиотеки, вам просто нужно убедиться, что компоновщик удовлетворен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...