【问题标题】:Build an android apk from Unity3d project working with C/C++ dll从使用 C/C++ dll 的 Unity3d 项目构建一个 android apk
【发布时间】:2014-08-07 20:02:11
【问题描述】:

我创建了一个使用 C/C++ Dll 的 Unity3d 项目。 所以首先我在 Visual Studio 中制作了 dll。

// mydll.cpp
#define EXPORT_API __declspec(dllexport)
extern "C" {
    int EXPORT_API add(int a, int b)
    {
        return a+b;
    }
}

我将这个 dll 添加到我的 Unity3D 项目中并调用

// C# script in Unity3D
public class TestDll : MonoBehaviour {
    [DllImport("mydll")]
    private static extern int add (int a, int b);

    void Start() {
        int a = add (100, 200);
    }
}

这段代码运行良好,我在 Unity3D 编辑器中得到了正确的结果。

所以我将这个项目构建到 android 平台并获得了一个 apk。 我在我的 android 设备上安装并运行了这个 apk,但该应用程序不起作用。 该应用没有运行 Dll 函数。

怎么了?我试图在谷歌和这里找到解决方案,但还没有得到任何东西。 请帮我。 谢谢。

【问题讨论】:

  • android/ios 无法使用 dll
  • 那么在这种情况下我该怎么办?无论如何,我想重用当前基于 C/C++ 的库。我可以把这个库模块做成.so或者其他文件格式,让android app可以使用吗?
  • Unity 会生成一个 Xcode 项目(对于 Android 来说可能也类似)。您必须将 C/C++ 代码添加到该项目并使用特定于平台的编译器为目标平台编译它。 Visual Studio 将不会生成 iOS/Android 或任何与 ARM 兼容的代码,至少 iOS 无法加载动态库,特别是 DLL(如果我的话,这是一种仅在桌面/x86 平台上可用的库格式) m 正确通知)。

标签: android dll unity3d


【解决方案1】:

您的 dll 必须在 Windows 的 Plugins 文件夹中,它也可以用于编辑器。对于 Android,您必须在 Plugins/Android 文件夹中替换。构建并写我好

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    • 2011-09-28
    相关资源
    最近更新 更多