Проблемы с плагином Unity3d для Android
Я получаю исключение DllNotFoundException при попытке получить доступ к моей общей библиотеке из проигрывателя Unity Android. Я поместил файл.so в папку Assets->Plugins->Android, о котором мне рассказала статья ЗДЕСЬ. Я запустил adb logcat и посмотрел логи, и вот фрагмент ошибки:
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
D/dalvikvm(27320): Trying to load lib /data/data/com.pheenixstudios.tankraigearena/lib/libwinsocklib.so 0x419ccfd0
E/Unity (27320): Unable to find winsocklib
D/dalvikvm(27320): Trying to load lib /data/data/com.pheenixstudios.tankraigearena/lib/libwinsocklib.so 0x419ccfd0
E/Unity (27320): Unable to find winsocklib
D/dalvikvm(27320): Trying to load lib /data/data/com.pheenixstudios.tankraigearena/lib/libwinsocklib.so 0x419ccfd0
E/Unity (27320): Unable to find winsocklib
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
E/ ( 532): inv_get_mag_rate
I/Unity (27320): DllNotFoundException: winsocklib
I/Unity (27320): at (wrapper managed-to-native) NetworkFunctions:dllInit ()
I/Unity (27320): at AndroidNetworkController.Start () [0x00000] in <filename unknown>:0
Я распаковал встроенный APK и файл winsocklib.so находится в папке lib\armeabi-v7a. это правильно написано. Я даже попытался добавить lib к имени файла безрезультатно.
Вот код C# только для дополнительного контекста:
[DllImport("winsocklib", CallingConvention = CallingConvention.Cdecl, EntryPoint = "dllInit")]
public static extern Double dllInit();
Я также упростил это до:
[DllImport("winsocklib")]
public static extern Double dllInit();
Кроме того, я сделал копию и поместил ее в Assets-> Plugins. Я также попытался переименовать оба в libwinsocklib без изменения кода C#. Все еще то же исключение.
У кого-нибудь есть какие-либо идеи? Кто-нибудь может пролить свет на ситуацию?
1 ответ
Разобрался с проблемой. Я использовал сборку lib с Linux ABI, а не Android ABI. Библиотека сейчас работает.