1

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に変更してみました。それでも同じ例外。

誰かアイデアはありますか?誰かが状況に光を当てることができますか?

4

1 に答える 1

1

問題を理解しました。私はAndroidABIではなくLinuxABIでlibビルドを使用していました。libが機能するようになりました。

于 2012-07-16T01:18:07.153 に答える