Программная загрузка нативных библиотек в Xamarin - PullRequest
0 голосов
/ 16 октября 2019

Наше приложение Xamarin поддерживает некоторые аппаратные функции для конкретного устройства Android, в которое входит сканер RFID. Мы не хотим загромождать наше основное приложение вещами, связанными с этим устройством, поэтому мы создали отдельную библиотеку Xamarin, содержащую логику для этого устройства, которая создана как актив объекта Droid. Во время разработки приложения мы проверяем, находимся ли мы на этом конкретном устройстве, и, если мы, мы программно загружаем аппаратную библиотеку Xamarin, используя Assembly.Load(...), и активируем ее.

Проблема, с которой мы сталкиваемся, заключается в том, что производитель устройства предоставил нам некоторые собственные библиотеки Android (файлы .so), которые необходимо использовать. Обычно вы включаете в проект Droid действие build AndroidNativeLibrary, но поскольку мы хотим инкапсулировать все, что связано с этим устройством, в отдельный проект, мы не хотим этого делать. Мы попробовали следующее:

  1. Чтобы добавить их в библиотеку Xamarin для конкретного устройства с действием build AndroidNativeLibrary, но затем приложение не сможет их найти. Вероятно, они не сохраняются на диск и поэтому не могут быть найдены.

  2. Чтобы добавить их в библиотеку Xamarin для конкретного устройства с помощью действия сборки Embedded Resource и сохранить их на диск, когда библиотеказапущен, но ни одно из мест, где приложение ищет собственные библиотеки, не доступно. Поэтому приложение не может их найти, а библиотека не может работать.

Я начинаю думать, что Android отгораживает подобное поведение, но я все еще надеюсь, что некоторые из вас помогутя с хорошим трюком. Заранее спасибо.

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