DllNotFound: FirebaseCppApp-6_14_0 только на Android? - PullRequest
0 голосов
/ 08 мая 2020

В настоящее время я использую Unity для создания своей игры, и сейчас я внедряю систему учетных записей пользователей. Методы отправки / получения для имени пользователя / пароля отлично работают в редакторе, но когда я использую Android, logcat выдает ошибку в заголовке вопроса (DllNotFound).

Очевидно, что DLL не отсутствует, да? В противном случае он не работал бы на автономном рабочем столе / редакторе? Если это так, я предполагаю, что он не встроен в Unity .apk по какой-либо причине. У кого-нибудь есть причина, почему? Я не нашел каких-либо полезных ресурсов в Интернете, так как все похожие вопросы, с которыми я сталкивался, касаются вообще отсутствия функциональности, а не разделения функциональности между платформами.

По каким причинам Unity распознает DLL в редакторе / автономном режиме, но не в сборке Android? (Рассматриваемая .dll находится в \ Assets \ Firebase \ Plugins \ x86_64, если это поможет).

1 Ответ

0 голосов
/ 08 мая 2020

Ваше исправление, вероятно, заключается в запуске принудительного разрешения в Android преобразователе.

Assets/External Dependency Manager/Android Resolver/Force Resolve

Что должно дать вам файл, который вам нужен как часть firebase-app-unity: Assets/Plugins/Android expanded with firebase-app-unity highlighted

Мои рассуждения:

На самом деле Unity SDK поставляется с примерно пятью копиями каждой собственной библиотеки для iOS, Android, MacOS, Windows и Linux (плюс варианты для разных архитектур и c). Библиотеки FirebaseCppApp являются реализациями на C ++ некоторых функций Firebase. Если вы посмотрите в указанную вами папку, вы увидите кучу папок с библиотеками для разных платформ редактора:

╰─$ ls -al | fgrep -v .meta
total 558360
drwxr-xr-x@ 14 martinpatrick  primarygroup        448 May  8 10:06 .
drwxr-xr-x  25 martinpatrick  primarygroup        800 May  8 10:18 ..
-rwxrwxr-x@  1 martinpatrick  primarygroup      48236 Dec  4  2016 FirebaseCppAnalytics.bundle
-rwxrwxr-x@  1 martinpatrick  primarygroup     355840 Dec  4  2016 FirebaseCppAnalytics.dll
-rwxrwxr-x@  1 martinpatrick  primarygroup     226136 Dec  4  2016 FirebaseCppAnalytics.so
-rwxrwxr-x@  1 martinpatrick  primarygroup   23186972 Dec  4  2016 FirebaseCppApp-6_14_0.bundle
-rwxrwxr-x@  1 martinpatrick  primarygroup    7526400 Dec  4  2016 FirebaseCppApp-6_14_0.dll
-rwxrwxr-x@  1 martinpatrick  primarygroup  254502608 Dec  4  2016 FirebaseCppApp-6_14_0.so

bundle для OSX, dll для Windows и so для Linux.

Очевидно, что здесь отсутствуют варианты SDK iOS и Android.

Собственные пакеты iOS и Android вытягиваются через External Dependency Manager for You ( см. этот пост , Play Services Resolver - старое имя). При запуске он ищет файл, соответствующий шаблону *Dependencies.xml, и начинает поиск собственных библиотек для втягивания.

Firebase включает локальный репозиторий Android maven в Assets/Firebase/m2repository, который содержит firebase-app-unity-6.14.0.srcaar с реализация Android C ++. Если вы не используете gradle для разрешения зависимостей, он должен скопировать необходимые компоненты в Assets/Plugins/Android при сборке в зависимости от ваших настроек в преобразователе: Settings window

Обратите внимание, что если вы используете gradle, этот пакет будет добавлен в ваш mainTemplate.gradle. Если об этом не упоминается, возможно, что-то пошло не так.

- Патрик

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