Unity Androidプレーヤーから共有ライブラリにアクセスしようとすると、DllNotFoundExceptionが発生します。.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();
さらに、コピーを作成して、[アセット]->[プラグイン]にも配置しました。また、c#コードを変更せずに、両方の名前をlibwinsocklibに変更してみました。それでも同じ例外。
誰かアイデアはありますか?誰かが状況に光を当てることができますか?