【问题标题】:Unity3d Android plugin issuesUnity3d Android 插件问题
【发布时间】:2012-07-12 05:01:08
【问题描述】:

我在尝试从 Unity Android 播放器访问我的共享库时收到 DllNotFoundException。我将 .so 文件放在文章 HERE 告诉我的 Assets->Plugins->Android 文件夹中。我运行 adb logcat 并查看了日志,这是错误的 sn-p:

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 中。我还尝试在不更改 c# 代码的情况下将两者都重命名为 libwinsocklib。还是一样的例外。

有人有什么想法吗?任何人都可以了解情况吗?

【问题讨论】:

    标签: android c++ plugins unity3d dllnotfoundexception


    【解决方案1】:

    解决了这个问题。我使用的是带有 Linux ABI 的 lib 构建,而不是 Android ABI。该库现在可以工作了。

    【讨论】:

    • 嗨,我也面临同样的问题。我们如何使用 android ABI 进行 lib 构建。我正在生成一个 armeabi 库,我得到了 dllnotfoundexception
    • 您需要使用 android NDK HERE 确保它在您的路径上。您将需要 Android 生成文件。例如,请参阅我的 github 项目 HERE 特别是 README 文件 HERE,以获取适用于 linux 和 Android 的完整构建说明。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    相关资源
    最近更新 更多