Почему Unity3D может загружать только 32-битный собственный плагин (.so) на платформе Android?

Я создал собственный плагин (общая библиотека, .so) для ARM64-v8 на платформе Android.

Он хорошо работает с простыми приложениями для Android.

Но когда Unity3D загружает его, я только что получил сообщение об ошибке «… .so является 64-битным вместо 32-битного…».

Я только что попытался использовать il2cpp для создания 64-битного приложения с Unity3D, но это тоже не работает.

Поддерживает ли Unity3D собственный 64-разрядный подключаемый модуль на платформе Android?

Or

Как я могу использовать этот 64-разрядный встроенный плагин на платформе Android?

Пожалуйста, дайте мне понять.

Спасибо.

В настоящее время инструменты, которые я использую, следующие:

ОС — Windows 10 64-разрядная

Unity3D (редактор?) — 5.5.03f Personal (64-разрядная версия)

AndroidNDK64 — Android NDK r10e для il2cpp


person TwisTeDStRiDeR    schedule 26.01.2017    source источник
comment
В какой каталог вашего проекта Unity вы поместили плагин .so?   -  person Programmer    schedule 26.01.2017
comment
@Programmer Я только что попробовал это в Assets/Plugins.   -  person TwisTeDStRiDeR    schedule 26.01.2017
comment
Нет. Существует два известных действительных каталога для подключаемого модуля Android. Assets/Plugins/Android/libs/x86/ и Assets/Plugins/Android/libs/armeabi-v7a/. Поместите это в Assets/Plugins/Android/libs/x86_64/. Дайте мне знать, если это действительно сработает. x86_64 для 64 бит. Возможно, это не поддерживается, но сначала попробуйте это.   -  person Programmer    schedule 26.01.2017


Ответы (1)


В настоящее время Unity не поддерживает 64-разрядные нативные плагины для Android. Поэтому вы должны использовать 32-битную версию. Обратите внимание на значения параметра «Архитектура» в настройках проигрывателя для цели Android (в редакторе Unity). Это ARMv7 и x86, обе 32-битные архитектуры.

Unity может поддерживать 64-битные цели для Android в какой-то момент в будущем, но я не знаю никаких текущих планов по этому поводу.

person Josh Peterson    schedule 26.01.2017
comment
Вот что я подумал. Что если создать папку x86_64 в папке Assets/Plugins/Android? Будет ли это работать? - person Programmer; 26.01.2017
comment
Спасибо, Джош. Тогда работает ли il2cpp только на iOS для создания версии для 64-битной архитектуры? - person TwisTeDStRiDeR; 26.01.2017
comment
@Programmer Нет, это не заставит 64-битные плагины работать на Android. Они просто не поддерживаются. - person Josh Peterson; 27.01.2017
comment
@TwisTeDStRiDeR Нет, на iOS поддерживаются как 32-разрядные, так и 64-разрядные версии. По умолчанию сборка iOS с IL2CPP создает универсальный двоичный файл с обоими фрагментами архитектуры. - person Josh Peterson; 27.01.2017